HDU6727 Quasi Binary Search Tree [贪心]

Q u a s i   B i n a r y   S e a r c h   T r e e Quasi\ Binary\ Search\ Tree Quasi Binary Search Tree

题目描述见链接 .


正 解 部 分 \color{red}{正解部分}

题目要求 字典序最小伪二叉树,
我们只需要在满足 一颗子树编号全部比根节点小, 另一颗子树编号全部比根节点大 的前提下 , 使得 序号越小的节点编号越小 即可 .

这个问题可以 分治 解决,
m n [ k ] mn[k] mn[k] 表示 以 k k k 为根的子树中最小序号为 k k k, 当前可分配的编号区间为 [ l , r ] [l, r] [l,r], 当前根节点为 k k k,

分 类 讨 论 : 分类讨论: :

  • 有两个儿子,
    • m n [ k ] = k : mn[k] = k: mn[k]=k:
      • 两子树大小不等, 此时哪颗子树的 s i z e size size 小, 就取哪颗子树当 左子树.
      • 两子树大小相等, 此时比较两颗子树的 m n [ ] mn[] mn[], 取较小值当 左子树 .
    • m n [ k ] ≠ k : mn[k] \not = k: mn[k]=k: 取两颗子树中 m x [ ] mx[] mx[] 较小的当 左子树 ,
  • 有一个儿子,
    • m n [ k ] = m n [ l t ] : mn[k]= mn[lt]: mn[k]=mn[lt]: l t lt lt左子树 .
    • m n [ k ] ≠ m n [ l t ] : mn[k] \not = mn[lt]: mn[k]=mn[lt]: l t lt lt右子树 .

实 现 部 分 \color{red}{实现部分}

咕咕咕 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值