树链剖分
文章平均质量分 88
Miao_zc
膜Hz
展开
-
bzoj4034: [HAOI2015]T2
初学树剖。。。听说是裸题。。。然后就做了。。。注意某个节点和它的子树DFS序相连,只要记住它子树最大的DFS序即可进行子树修改。#include#include#define N 2000000#define ll long longusing 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 · 450 阅读 · 0 评论 -
bzoj2157: 旅游
树链剖分。把边权转成深度大的点权,支持单点赋值,路径取反,路径求和,路径最值,用线段树即可完成。因为第一种操作是对边的编号修改,一开始没注意WA了。。#include#include#define N 100000#define inf 1000000000using namespace std;int n,m,x,y,z,w[N],L[N];int first[N],to原创 2016-04-18 08:48:45 · 403 阅读 · 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 50005using namespace std;int n,原创 2016-07-03 10:49:59 · 863 阅读 · 0 评论 -
bzoj4964: 加长的咒语
求区间最长括号序列子串。很有意思的括号,但是我有些细节没处理好,导致代码长,算法复杂。。 如果有更好的算法我也很想知道啊>.考虑一个括号序列A=(B1)(B2)(B3)…,其中与某个括号匹配的相对的括号唯一。证明显然。有一个显然的算法:用栈判断一个字符串是否为括号序列。考虑拓展这个结论:对任意括号串的某个括号序列子串,某个括号匹配的相对的括号唯一。证明显然。既然这样就随原创 2017-08-11 10:51:41 · 727 阅读 · 0 评论