点分治
puck_just_me
oier
展开
-
【点分治】BZOJ 2599:[IOI2011]Race
BZOJ 2599:[IOI2011]RaceDescription给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小.Input第一行 两个整数 n, k 第二..n行 每行三个整数 表示一条无向边的两端和权值 (注意点的编号从0开始)Output一个整数 表示最小边数量 如果不存在这样的路径 输出-1Sample Input4 3 0 1 1 1 2 2 1 3 4Sampl原创 2016-02-03 08:43:33 · 879 阅读 · 0 评论 -
【点分治】BZOJ 1468:Tree
BZOJ 1468:TreeDescription给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于KInputN 接下来n-1行边描述管道,按照题目中写的输入 接下来是kOutput一行,有多少对点之间的距离小于等于kSample Input7 1 6 13 6 3 9 3 5 7 4 1 3 2 4 20 4 7 2 10Sample Outp原创 2016-02-03 08:52:47 · 552 阅读 · 0 评论 -
【点分治】BZOJ 3697:采药人的路径
BZOJ 3697:采药人的路径Description采药人的药田是一个树状结构,每条路径上都种植着同种药材。 采药人以自己对药材独到的见解,对每种药材进行了分类。大致分为两类,一种是阴性的,一种是阳性的。 采药人每天都要进行采药活动。他选择的路径是很有讲究的,他认为阴阳平衡是很重要的,所以他走的一定是两种药材数目相等的路径。采药工作是很辛苦的,所以他希望他选出的路径中有一个可以作为休息站的节点原创 2016-02-03 10:54:04 · 562 阅读 · 0 评论 -
【点分治】3365: [Usaco2004 Feb]Distance Statistics 路程统计
3365: [Usaco2004 Feb]Distance Statistics 路程统计Description在得知了自己农场的完整地图后(地图形式如前三题所述),约翰又有了新的问题.他提供 一个整数K(1≤K≤109),希望你输出有多少对农场之间的距离是不超过K的.(题意略坑 我说一下 m是没用的因为这是一颗树 每行的第四个字母也没用,其他和1468 tree一样)Input第1到I+M行:与原创 2016-02-03 10:57:45 · 570 阅读 · 0 评论 -
点分治总结
点分治概念树的点分治是一种解决一类树上路径问题的算法,复杂度大概是O(NlgN)的. 主要操作有findroot cal solve函数,根据题意还可以加其它的函数 主要是每次利用树的重心最大size的子树不超过n/2的性质达到lg的时间复杂度 然后在子树之间统计模板1.findroot这个应该比较简单,找树的重心,维护点size然后求max,最后n-size[x]代表它父亲那块的子树的siz原创 2016-02-03 11:10:07 · 717 阅读 · 0 评论