
树链剖分
文章平均质量分 88
Miao_zc
膜Hz
展开
-
bzoj4034: [HAOI2015]T2
初学树剖。。。听说是裸题。。。然后就做了。。。 注意某个节点和它的子树DFS序相连,只要记住它子树最大的DFS序即可进行子树修改。 #include #include #define N 2000000 #define ll long long using namespace std; int n,m,x,y,l,p,q; ll s[N*5],up; struct edge{int to,ne原创 2016-03-10 07:22:20 · 467 阅读 · 0 评论 -
bzoj2157: 旅游
树链剖分。 把边权转成深度大的点权,支持单点赋值,路径取反,路径求和,路径最值,用线段树即可完成。 因为第一种操作是对边的编号修改,一开始没注意WA了。。 #include #include #define N 100000 #define inf 1000000000 using namespace std; int n,m,x,y,z,w[N],L[N]; int first[N],to原创 2016-04-18 08:48:45 · 426 阅读 · 0 评论 -
bzoj4381: [POI2015]Odwiedziny
点这里→ 这道题暴力跑最多n/m个点(m为步长),当m较小时飞慢。考虑DP[i][j]表示从i以j步长跳到根的和,询问可达到O(1+lca)。 这样对m>sqrt(n)的暴力, 另外up函数是利用树剖把x往上跳y下,同一个方向跳复杂度O(logn)。 #include #include #include #define N 50005 using namespace std; int n,原创 2016-07-03 10:49:59 · 897 阅读 · 0 评论 -
bzoj4964: 加长的咒语
求区间最长括号序列子串。 很有意思的括号,但是我有些细节没处理好,导致代码长,算法复杂。。 如果有更好的算法我也很想知道啊>. 考虑一个括号序列A=(B1)(B2)(B3)…,其中与某个括号匹配的相对的括号唯一。证明显然。 有一个显然的算法:用栈判断一个字符串是否为括号序列。 考虑拓展这个结论:对任意括号串的某个括号序列子串,某个括号匹配的相对的括号唯一。证明显然。 既然这样就随原创 2017-08-11 10:51:41 · 783 阅读 · 0 评论