【线段树】
VanishD
気付かないうちにオトナになって,绮丽な嘘 口に出来るほど。
展开
-
[bzoj4942][noi2017]整数【线段树】
【题目描述】 http://www.lydsy.com/JudgeOnline/upload/Noi2017D1.pdf 【题解】 每个操作若不要进退位就暴力修改,否则用线段树找到下一个可以进退位的地方,并将中间部分翻转(0变为1,1变为0) 把30个二进制位压在一起存储,这样修改时最多进退位2次。复杂度 O(n log n). /* -------------- u原创 2018-01-28 19:58:37 · 889 阅读 · 0 评论 -
[bzoj5294][Bjoi2018]二进制【线段树】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=5294 【题解】 考虑一个二进制数什么时候重排后模3不余0,只有两种情况。 1.只存在一个1。 2.存在奇数个1且0的数量不大于1。 那么我们考虑从总方案中减去不合法的方案,在线段树中每个节点维护左(右)端第一个与第二个0/1。分情况讨论一下即可。 ...原创 2018-05-30 14:46:06 · 483 阅读 · 0 评论 -
[bzoj3545][ONTAK2010]Peaks【线段树】【并查集】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=3545 【题解】 显然离线后会好做许多。 将所有边与询问的困难值排序,用并查集维护连通性,用权值线段树维护连通块权值。每次加入一条边时,若在不同连通块中,就将这两个块合并。用线段树合并维护权值线段树。查询时查询所在块的第K大即可。 时间复杂度O(N∗logN)...原创 2018-05-29 18:59:03 · 281 阅读 · 0 评论 -
[bzoj4855][Jsoi2016]轻重路径【树链剖分】【线段树】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4855 【题解】 考虑一个轻重路径剖分,当有一个新的节点被加入后,最多改变O(log)O(log)O(log)个路径的剖分。...原创 2018-05-29 18:36:05 · 379 阅读 · 0 评论 -
[bzoj5334][loj2573][TJOI2018]数学计算【线段树】
【题目链接】 https://loj.ac/problem/2573 【题解】 线段树维护区间乘积。 时间复杂度O(N∗logN)O(N∗logN)O(N*logN) 【代码】 # include <bits/stdc++.h> # define ll long long # define inf 0x3f3f3f3f # defi...原创 2018-06-12 13:24:02 · 187 阅读 · 0 评论 -
[bzoj4552][Tjoi2016&Heoi2016]排序【线段树】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4552 【题解】 线段树的一些特殊技巧:合并与分裂。 首先把每个点都建出一棵权值线段树,每次排序时,将包含的权值线段树合并在一起即可。可以用set维护当前的线段树集合。 但是排序可能会将两端的线段树分开,这时就要进行分裂操作,形象一点,就是将线段树从中间切开,...原创 2018-05-28 22:10:45 · 260 阅读 · 0 评论 -
[bzoj4408][Fjoi 2016]神秘数【线段树】【复杂度分析】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4408 【题解】 先建出可持久化线段树,查询时查询当前可到达的区间中是否还有其他数,有就更新可到达区间并再次查询,没有就退出。 由于每一次更新的数都大于上一次的区间总长,所以区间长度是指数级增长的(最差是斐波那契数列)。 时间复杂度O(N∗log2N)O(N∗...原创 2018-05-28 22:01:19 · 317 阅读 · 0 评论 -
[bzoj5077][uoj198][ctsc2016]时空旅行【线段树】【dfs序】
【题目链接】 http://uoj.ac/problem/198 https://www.lydsy.com/JudgeOnline/problem.php?id=5077 【题解】 先求出每个星球在dfs序上的对应区间,虽然有的星球不止一个区间,但区间的总数是O(N)O(N)O(N)级别的。然后把这些区间标记在线段树上。显然每个星球可以看做斜率优化中的一条直线,所以对于线段树...原创 2018-06-04 14:09:19 · 461 阅读 · 0 评论 -
[bzoj3252]攻略【dfs序】【线段树】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=3252 【题解】 一个显而易见的贪心:每次一定取价值和最大的路径。 所以我们可以把每个点的权值设为它的到根的路径的价值和,然后按dfs序排好序后存入线段树种中。修改时,从叶节点开始往上走,每次把子树的所有点的权值减去它的价值(dfs中的一段区间)。直到遇到一个已经被...原创 2018-04-20 22:22:25 · 215 阅读 · 0 评论 -
[bzoj3307]雨天的尾巴【线段树】
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=3307 【题解】 首先这道题所有的修改可以一次处理完。 若有一条边(u,v)(u,v)(u,v)在u,vu,vu,v上各打一个+1+1+1的标记,在lca(u,v),dad(lca(u,v))lca(u,v),dad(lca(u,v))lca(u,v),dad(l...原创 2018-03-13 21:58:34 · 265 阅读 · 0 评论 -
[bzoj1018][SHOI2008]堵塞的交通traffic【线段树】
【题目描述】Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国。小人国的布局非常奇特,整个国家的交通系统可以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一条道路,所以总共有2C个城市和3C-2条道路。 小人国的交通状况非常槽糕。有的时候由于交通堵塞,两座城市之间的道路会变得不连通,直到拥堵解决,道路才会恢复畅通。初来咋到的你决心毛遂自荐到...原创 2018-02-23 21:36:55 · 265 阅读 · 0 评论 -
[bzoj1901][Zju2112]Dynamic Rankings【树套树】【树状数组】【线段树】
【题目描述】 Description 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1 ],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改 变后的a继续回答上面的问题。 Input 第一行有两个正整数n(1原创 2018-01-28 20:17:42 · 206 阅读 · 0 评论 -
[bzoj4184]shallot【线段树】【线性基】
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4184 【题解】 以时间为下标建立线段树,每个数有一个存在时间区间,挂在对应线段树节点上。询问时维护一个线性基,dfs这颗线段树,在叶节点查询。 时间复杂度O(31N∗logN)O(31N∗logN)O(31N*logN) 【代码】 /* - - - - - -...原创 2018-05-30 17:09:23 · 316 阅读 · 0 评论