随笔分类 -  Z - 数据结构 - 线段树/树状数组

摘要:线段树维护单调栈 又是一道非常棒的思维题!!! SOL: 问题转化(倒着思考) t时刻在某点,每次可以向后走一步或留在原地,然后t减1 每个点在$T_i$消失,求最小的$t$使得所有点都可以在消失前被访问 于是惊奇地发现留在原地一定不优,会一直往前走 破环为链(2倍),对于$i\in[n,2n)$走 阅读全文
posted @ 2020-03-31 14:55 starusc 阅读(172) 评论(0) 推荐(0)
摘要:此题实际就是序列上的问题(只是链的话不一定$u using namespace std; inline int read(){ int x=0,f=1;char c=getchar(); while(!isdigit(c)){if(c==' ')f= 1;c=getchar();} while(is 阅读全文
posted @ 2020-03-27 10:55 starusc 阅读(237) 评论(0) 推荐(0)
摘要:线段树好题 $n,m,1e5$ 二进制没有位除3的余数是以12121212……循环的 我们用总数减去不合法情况: 1. 只有1个1,0的个数 =2(保证不重复) 2. 奇数个1,0的个数=2个0的方案数,$fr$同理 在记录0/1的个数,左起/右起0的个数,答案 讨论更新即可 时间复杂度$O(nlo 阅读全文
posted @ 2020-03-26 16:33 starusc 阅读(248) 评论(0) 推荐(0)
摘要:每次修改可以看成是一个一次函数,分成两个点到$lca$分别修改 于是树链剖分+李超线段树+标记永久化求最小值 时间复杂度$O(nlog_n^3)$,但出题人良心可以过 阅读全文
posted @ 2020-03-24 16:26 starusc 阅读(149) 评论(0) 推荐(0)
摘要:李超线段树用来在平面内动态插入线段,求$x=t$直线与这些线段交点的最值 核心是维护每个区间的“最优势线段”,即终点位置处最高的线段,询问室对所有包含$t$的区间的最优势线段计算答案,最后取$max$ 模板题:JSOI2008BlueMary开公司 插入直线,求单点最大值 (看代码) 阅读全文
posted @ 2020-03-24 12:07 starusc 阅读(92) 评论(0) 推荐(0)
摘要:问题拆解,好题&难题 发现:每个点经历了一次修改后,若$x_iy_j$(貌似并没有用到?) 考虑线段树分治: 每个询问记录修改时间区间 每个时间段的区间将询问的点按$x$或$y$排序 用动态开点线段树维护最大值算出每个修改的区间 例$H$操作,在长度小于$l$的区域,可能会被$V$操作扫走,所以每次 阅读全文
posted @ 2020-03-23 15:08 starusc 阅读(591) 评论(0) 推荐(0)
摘要:考虑性质 $n1e5$ SOL: $a_1 a_2+a_3 a_4 a_5$ $a_1 a_2 a_3 a_4+a_5$ 上式相加只剩前面的乘法,所以我们要算的是所有前缀积 $ans=\sum_{i=1}^{n 1}s_i 2 3^{n i 1}+s_n,s_i=\prod_{j=1}^ia_j$ 阅读全文
posted @ 2020-03-22 14:16 starusc 阅读(153) 评论(0) 推荐(0)
摘要:区间新解法 $n,m2e5$ SOL: $L[i],R[i]$分别表示$i$左边和右边第一个比自己大的位置 1. $(L[i],R[i])$产生$p1$贡献,在$R[i]$时刻对$L[i]$更新 2. $(L[i]+1\to i 1,R[i])$产生$p2$贡献,在$R[i]$时刻对$L[i]+1\ 阅读全文
posted @ 2020-03-18 21:00 starusc 阅读(95) 评论(0) 推荐(0)
摘要:设区间修改加入的差分数组为$d[i]$ 前缀和$\sum^n_{i=1}\sum^i_{j=1}d[j]=\sum_{i=1}^nd[i] (n i+1)=(n+1)\sum^n_{i=1}d[i]+\sum^n_{i=1}d[i] i$ 只需要单独维护$d[i] i$和$d[i]$即可 阅读全文
posted @ 2020-03-18 20:45 starusc 阅读(93) 评论(0) 推荐(0)
摘要:$m1e5$ 套路:题目是splay,就显然不是spaly 单旋与双旋的区别: 若为一条链,单旋完了还是链,复杂度不对 双旋我们判断了如果与父亲及祖先在一条直线上则先转祖先,则不会发生这种情况 SOL: 发现其实树的形态变化并不大 例如将最小值旋至根: 1. 把最小值的儿子当做其父亲的对应儿子 2. 阅读全文
posted @ 2020-03-18 19:14 starusc 阅读(146) 评论(0) 推荐(0)
摘要:一道线段树水题 注意别被卡精度(无时无刻都要想着强制转换double) 居然写了$100min$,我太弱了!!! 阅读全文
posted @ 2020-03-18 16:48 starusc 阅读(122) 评论(0) 推荐(0)