数据结构--区间一类问题(待更新...)

查找节点后继中权值小于该节点权值的节点个数:HDU 3887

题意:给出一棵树,对每个节点i,求节点i的后继节点中权值小于i的个数。

思路:dfs序+线段树or树状数组。先dfs遍历整棵树,记录每个节点的子树对应的区间(即【in[i],out[i]】),然后建立线段树,每个叶子节点的权值设置为1,维护节点权值之和,从大到小开始找,查询完成之后,删除该节点,即权值设为0,因为值较大的节点删除之后对值较小的节点没有影响。

经典区间覆盖问题(涂色):Zju1610 Count the Colors

题意:画一些颜色段在一行上,一些较早的颜色就会被后来的颜色覆盖了。 你的任务就是要数出你随后能看到的不同颜色的段的数目。

思路:不能直接更新点,考虑以下数据(1,2,1) (2,4,2) (3,4,3)(1,2,1),最后每个点的颜色为1 1 3 3,只有2个颜色,忽略了开区间(2,3)的颜色

以每个点代表其左边单位区间的颜色,当对(a,b)区间进行染色时,只需要更新(a+1,b)即可。另外注意题目数据范围,不是1-n,而是1-8000.


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值