当线段树调试不出来的时候,请画一棵树,设个断点,照着你的树走,走完你就AC了和poj 2528的离散化方法如出一辙,如果两个相邻数的大小大于1 ,在中间插入一个任意的数线段树更新的过程类似于求周长并,需要判断左右边界是否是一样的高度(左儿子的右边界与右儿子的左边界)我是左闭右闭的线段树,所以开始的时候要把n-1加进来(这里错了好几次,一直加了n) ,另外0也要加进来。举个例子:区间长度为10 现在总共记录了1 3 5 7所以要先把0 9 加进来离散化后是0 1 2 3 4 5 6 7 8 9下面这个函数其实是把两个功能结合在一起了View Code void pushup(int rt,int Read More
posted @ 2012-03-19 21:51 Because Of You Views(660) Comments(1) Diggs(1) Edit
转自:http://www.notonlysuccess.com/index.php/segment-tree-complete/题意:在墙上贴海报,海报可以互相覆盖,问最后可以看见几张海报思路:这题数据范围很大,直接搞超时+超内存,需要离散化:离散化简单的来说就是只取我们需要的值来用,比如说区间[1000,2000],[1990,2012] 我们用不到[-∞,999][1001,1989][1991,1999][2001,2011][2013,+∞]这些值,所以我只需要1000,1990,2000,2012就够了,将其分别映射到0,1,2,3,在于复杂度就大大的降下来了所以离散化要保存所有需 Read More
posted @ 2012-03-19 12:16 Because Of You Views(5503) Comments(0) Diggs(1) Edit