摘要: 一道淀粉质的模版题,开始是暴力 然后我用了二分 虽然还可以更快,但我不想打了 阅读全文
posted @ 2019-04-26 09:53 陈星卿 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 对于这道题,明显是点分治,权值等于k,可以用桶统计树上路径(但注意要清空); 对于每颗子树,先与之前的子树拼k,再更新桶,维护t["len"]最小边数; 阅读全文
posted @ 2019-04-20 11:50 陈星卿 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 淀粉质 第二道点分治的题 关于点分治的一点理解: 所谓点分治,其实就是把要求的问题(一般与路径有关)划分成两种情况 1.路径经过rt(根节点) 2.路径在根节点的子树内 我们只需要处理情况1,因为情况2就是情况1的递归子问题 在这个过程中,要注意容斥原理的应用; // 关于此题: w可预先%3(不会 阅读全文
posted @ 2019-04-19 18:07 陈星卿 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 最简单的点分治 淀粉质的思想: “分而治之”,缩小问题规模,合并求解; 阅读全文
posted @ 2019-04-19 17:06 陈星卿 阅读(88) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problemnew/show/P304 1 #include <bits/stdc++.h> 2 #define up(i,l,r) for(register int i = (l); i <= (r); ++i) 3 #define dn(i,l,r) 阅读全文
posted @ 2019-03-21 10:56 陈星卿 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #define up(i,l,r) for(register int i = (l);i = (r); i--) 4 #define ll long long 5 using namespace std; 6 7 const int N = 21000000; 8 int len,ans,r[N i) r[i] = min(r[id*2-i],mx-i... 阅读全文
posted @ 2019-03-10 16:46 陈星卿 阅读(82) 评论(0) 推荐(0) 编辑
摘要: https://loj.ac/problem/10131 树上边差分,需要注意的是cnt[1] == 0 不能算的问题(他实际并未有连0号点) 阅读全文
posted @ 2019-03-02 09:52 陈星卿 阅读(355) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problemnew/show/P3398 题意简单概括一下就是求树上两条路径是否相交; 有这样一个性质: if相交,则必有lca(a,b) 在路径c <-> d 上or lca(c,d) 在路径a <-> b 上; 接下来就是这样一个问题: 怎样判断一个 阅读全文
posted @ 2019-02-22 15:59 陈星卿 阅读(153) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problemnew/show/P1967 由题可知,我们走的路的边应尽可能大,所以通过$kruscal$建最大生成树的图,再树上倍增,注意可能有多棵树; 最开始的写法之所以是错误的,是因为会多求一段,而我们只需要求到LCA就行; 阅读全文
posted @ 2019-02-22 14:45 陈星卿 阅读(180) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/problemnew/show/P3258 注意开始和最后结尾 阅读全文
posted @ 2019-02-22 10:43 陈星卿 阅读(213) 评论(0) 推荐(0) 编辑