随笔分类 -  LCT

摘要:包含了link、cut、update、query操作。 更新时类似线段树就可以了。 代码: #include<cstdio> #include<iostream> #include<cstring> using namespace std; #define N 100010 #define M 51 阅读全文
posted @ 2017-03-16 08:49 gjghfd 阅读(141) 评论(0) 推荐(0)
摘要:对于修改,将其splay到根再修改。 对于查询x,y路径上的权值和,先将x换到根,再access(y)、splay(y),sum[y]就是答案。 代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using names 阅读全文
posted @ 2017-03-11 11:11 gjghfd 阅读(250) 评论(0) 推荐(0)
摘要:只有cut和link操作的LCT 代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 #define N 10010 6 int i,j,k,x,y,n,m,f[N],ch[ 阅读全文
posted @ 2017-03-11 10:12 gjghfd 阅读(239) 评论(0) 推荐(0)
摘要:考虑建一棵树,对于一个点i,如果i+ki<=n,将i+ki作为它的父亲。那么答案就是这个点的深度。 由于有修改操作,用LCT维护这棵树,每个修改操作改变父节点就可以了。 代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 阅读全文
posted @ 2017-03-07 16:18 gjghfd 阅读(177) 评论(0) 推荐(1)