随笔分类 -  线段树

摘要:学线段树的时候学的扫描线(虽然早就看过了,一直没敲过,还是懒),现在来补一道题:因为题目给的矩形的坐标是浮点型的,所以毫无疑问要离散化,我们以y轴坐标来建立线段树(当然也可以以x轴,这样的话扫描线是上下方向的了),然后Line表示扫描线的下一个位置。求面积的就是ans+=(line[i].x-lin... 阅读全文
posted @ 2015-05-04 14:28 hqwhqwhq 阅读(130) 评论(0) 推荐(0)
摘要:题目的意思比较明确,就是求不减子序列的个数。那道题目很容易想到的是dp来写,DP的地推公式就是dp[i] = sum{dp[j] | j #include #include #include #include #include #include #define FOR(i,x,y) for(int... 阅读全文
posted @ 2015-05-03 16:56 hqwhqwhq 阅读(169) 评论(0) 推荐(0)
摘要:这道题的意思是求一个结点的子树和(包含这个结点),操作只有两个,查询,和单点修改。容易想到用线段树来维护,怎么构建线段树是个问题。这道题正好学习了一下,dfs来遍历一遍,那么每一颗子树对应的新的结点的值都是连续的,我们遍历返回这个子树的最大值最小值,也就是要查找的范围。这道题在poj上提交有点小问题... 阅读全文
posted @ 2015-04-01 23:54 hqwhqwhq 阅读(145) 评论(0) 推荐(0)
摘要:看到这道题毫无疑问就是线段树做,在2个小时的时间卡死在这道题了。。。一直觉得会超内存,后来看了题解才知道自己真是笨的可以。。。题目做的太少的缘故吧。。。这道题正好是点更新,果断放弃了线段树,用树状数组来搞(结果到最后也没有更新,反正趁机又复习了一下树状数组),第一次用map,感觉真是好用啊。。。下面... 阅读全文
posted @ 2014-11-30 01:10 hqwhqwhq 阅读(347) 评论(0) 推荐(0)
摘要:这道题的意思是:N个房间(1-n),进行M次操作,1 x :代表第一种操作:向连续的x房间里面住人,如果能住返回第一个房间的号码(如果有多重解,返回最小值),如果不能住,则输出0.2XY:代表第二种操作,将x,x+1...x+y-1的房间清空。还是看了题解搞定的一道。。。总体思路:定义 lmax,r... 阅读全文
posted @ 2014-11-06 15:45 hqwhqwhq 阅读(266) 评论(0) 推荐(1)