
poj 线段树
Pro_space
从蒟蒻开始成长~
展开
-
【线段树专题】poj1823
最大空子列想到用lsum表示从左开始的最长空串,rsum表示从右开始的最长空串。还要用biao标记一下-1表示完全不覆盖0表示有的覆盖有的不覆盖1表示完全覆盖#include#include#include#include#include#includeusing namespace std;int tot=0,n,q;struct原创 2015-04-02 19:32:09 · 337 阅读 · 0 评论 -
【线段树专题】poj1177
这回变成了矩形周长并,思想和矩形面积并是一样的。但是有一点区别的是周长并需要判断当前子节点是不是已经被覆盖了。如果被覆盖了那么ans不需要改动,如果当前节点没有 (被覆盖的上级节点)那么这个节点的sum直如果变化的话就要加到答案里去了。还是老问题,交c++WA交g++AC。。。。对了。。上下方向和左右方向都要做一遍#include#include#include#incl原创 2015-03-31 20:41:13 · 348 阅读 · 0 评论 -
【线段树专题】poj1389
这个和poj1151一样。。。。就是读入时候略有区别。。。。#include#include#include#include#include#includeusing namespace std;int tot,s_tot,q[20100],tmp_q[20100],tail,tmp_tail,ans;struct rec{ int l,r,lch,rch,sum原创 2015-03-31 20:48:30 · 369 阅读 · 0 评论 -
【线段树专题】poj1151
矩形面积并线段树经典题目这种题提供了一个新的思路,线段树的标记不一定需要下传。就如同这个题我用biao这个域存了线段树的某个节点当前被多少线段覆盖,但是这个biao是不下传的。然后这个题运用了扫描线的思想,把面积按照纵坐标分割。#include#include#include#include#include#include#i原创 2015-03-31 20:35:05 · 391 阅读 · 0 评论 -
【线段树专题】poj2104
这个题已经被花式A了因为要练习线段树,所以就用函数式线段树写了这个题,函数式运用了一种可持久化的思想,在修改的同时记录修改以前的样子,函数式线段树的话就是在每次进行插入操作的时候在上一次线段树的基础上新建一条路径,其余节点都用原来线段树的节点感觉现在写起来比以前要轻松很多了。#include#include#include#include#include#include原创 2015-04-03 23:36:01 · 403 阅读 · 0 评论 -
【线段树专题】hdu4614
这个题的话思路不复杂对于每个1操作,利用两次二分来查找它的操作区间,然后把这个区间都赋值为1,对于每个2操作,直接把区间赋值为零好了。。线段树维护一个sum存储当前区间为值0的点有多少个就好#include#include#include#include#include#includeusing namespace std;struct rec{int lch,rch,s原创 2015-06-01 15:55:25 · 319 阅读 · 0 评论