点分治
xzxxzx401
这个作者很懒,什么都没留下…
展开
-
POJ 1741 Tree
POJ 1741 Tree静态点分治 传送门:HustOJ 题意给你一个树,树上每条边都有长度。给你一个K,问你树上长度不超过K的路径共有多少条。思路参见挑战361页,讲的挺好。还有09年国家集训队论文,漆子超的。代码POJ卡STL我也是醉了,不得不用链式前向星#include <iostream> #include <cstdio> #include <cstdlib> #include <c原创 2017-07-25 00:53:15 · 212 阅读 · 0 评论 -
POJ 2114 Boatherds
POJ 2114 Boatherds点分治题意给一棵带边权的树,给一系列询问,问是否存在一条路径,使得路上权值和恰好为K。思路点分治。 100个询问,每次做一遍点分治。点分治记录所有路径长度,在二分查找是否有满足条件的长度。代码#include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> using namespa原创 2017-09-22 23:45:41 · 242 阅读 · 0 评论 -
[bzoj2152]聪聪可可——点分治
bzoj 2152 聪聪可可点分治题意给定一棵带权树,需要统计路径长度为3的倍数的路径条数。思路重学点分治。 主要操作就是找重心,那个getrt函数。mx[x]表示x最大的儿子的size,注意这个最大的儿子包括他父亲。所以最后那句mx[x]=max(mx[x], n-sz[x]);就是统计他父亲那边的size。getdis和calc函数都是暴力计算,getdis(x,f)是统计x的子树中的dis情原创 2017-09-22 15:27:17 · 213 阅读 · 0 评论