雯舞

Love three things int he world -- Manchery

[树链剖分 可持久化线段树 垃圾数据结构题] Codechef JUNE17 #OAK Persistent oak

垃圾数据结构题大概就是维护树上的点离最大承重还差多少 然后断掉的就是到根路径上最早的小于0的地方 断掉后 到根路径还剩的承重都要加上掉下的重量 就是一颗线段树满足区间加 区间求min鄙视CC强行可持久化 硬上主席树标记永久化#include<cstdio> #include<...

2017-06-13 20:38:34

阅读数:260

评论数:0

[链分治 重链剖分 FWT] BZOJ 4911 [Sdoi2017]切树游戏

我链分治是从immortalCO今年论文学来的 就是一个序列上能够维护的东西,把他搬到重链上,先处理好儿子重链的答案,然后把对这条重链上的影响累加在这条重链上然后就是套路 FWT一下就能加和乘了 注意0没有逆元复杂度O(mnlog2n)O(mn\log^2n) 实际上树链剖分是跑不满的 ra...

2017-06-09 14:44:47

阅读数:1260

评论数:0

[长链剖分] BZOJ 1758 [Wc2010]重建计划

关于长链剖分 两个应用 O(n)O(n) 统计每个点子树中可合并的以深度为下标的信息 经过一些预处理,单次O(1)O(1)在线查询一个点的kk级祖先 这题二分答案后就是求长度在区间内的最长链 然后就记录下某个深度的最大dis 长链剖分加线段树 维护 O(nlog2n)O(n\log ^2n) ...

2017-05-19 21:08:21

阅读数:574

评论数:0

[树链剖分] BZOJ 4811 [Ynoi2017]由乃的OJ

怎么这么眼熟 BZOJ 2908 又是nand? 复杂度?O(64∗nlog2n)O(64*n\log^2n) 吃不消吧 然后发现我写的是假题解 什么三十二颗线段树 明明可以压位在一起orz 维护上面说的这个东西并不需要64*2个bool变量,而是可以压到两个unsigned long l...

2017-05-05 08:51:54

阅读数:314

评论数:0

[点双连通分量 缩点 树链剖分] Codeforces 487E #278 (Div. 1) E. Tourists

点双连通分量的缩点技巧 来自:http://blog.csdn.net/a_crazy_czy/article/details/52244069 在这里我们使用这样一种方法:对于每一个点双连通分量,我们建一个新建点储存点双所有点的最小权值,然后该点向点双内所有不是深度最小的点连一条边,然后深度...

2016-12-24 15:57:12

阅读数:389

评论数:0

[鬼畜 树链剖分 线段树] BZOJ 2814 tree

类似最大子段和去搞 可以把两头看成各有两个接口 然后随意维护十几个值搞搞搞 打了一中午 调了一晚上 发现看错题 改了改 调到睡觉 心累 #include #include #include #include using namespace std; typedef long long ll; ...

2016-09-04 07:56:56

阅读数:413

评论数:0

[树链剖分 线段树] BZOJ 4127 Abs

每个点只可能从负到正一次 暴力开两棵线段树分别维护正负 均摊nlogn

2016-08-23 18:19:45

阅读数:431

评论数:0

[树链剖分 线段树 标记永久化] BZOJ 4515 [Sdoi2016]游戏

想到了维护 ax+b 但不知道怎么修改 然后就听说了标记永久化 对于两个直线方程 把决定范围小的下放到子树中 树链剖分两个log,标记一次最多下推log层 三个log复杂度好虚 #include #include #include #include using namespace std; ...

2016-04-22 10:26:43

阅读数:671

评论数:0

[二分答案 树链剖分] BZOJ 4326 NOIP2015 运输计划

考虑二分 把所有超过mid的链取交集,然后取交集上最长的边权赋0,判断 #include #include #include #define V G[p].v using namespace std; inline char nc() { static char buf[10000...

2016-04-22 10:19:45

阅读数:447

评论数:0

[树链剖分 线段树 堆] BZOJ 4538 [Hnoi2016]网络

裸的树链剖分 线段树里套个堆 最暴力的打法 还有一种做法是考虑二分答案,如果大于答案的边都经过询问点,则往小的二分否则往大的二分。这样我们只要维护路径的交集。用rmq求lca的话可以做到O(1)求出两条路径的交集。可以离散后用线段树维护二分结构,并在对应的节点上记录路径交集 O(log...

2016-04-21 13:32:40

阅读数:343

评论数:0

[树链剖分 线段树] BZOJ 2908 又是nand

树剖 然后开32棵线段树 记录1/0 从左/右 经过 变成的值 然后就是一些区间合并成一条有向路径 #include #include #include #define V G[p].v #define nand(x,y) (!((x)&(y))) #define digit(...

2016-04-19 18:41:43

阅读数:345

评论数:0

[树链剖分 线段树] BZOJ 3531 [Sdoi2014]旅行

树链剖分 给每一个信仰开一棵线段树 然后就是动态开点的打码问题了 #include #include #include #include #define V G[p].v using namespace std; inline char nc() { static char buf[100...

2016-04-12 19:54:43

阅读数:228

评论数:0

[扫描线 树链剖分 树状数组] BZOJ2758 [SCOI2012]Blinker的噩梦

扫描线  一般扫描线的做法就是想象一根线向某个方向扫过,进入的进入,出去的出去,用一个set维护序列或是结合线段树,当然最恶心的就是加上计算几何 但是落实到这题上就是各种鬼畜乱搞,只能膜大神 省选前做难题的结果是——到处翻题解,程序越改越像 “题意:平面上有n个多边形(凸包和圆)。任意两个多边...

2016-03-18 20:25:36

阅读数:1131

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭