![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
点分治
zhhx2001
这个作者很懒,什么都没留下…
展开
-
bzoj2152(树形dp或点分治)
算是点分治模板题。用的一位神奔的模板,思路还是很清晰的。不过这道题状态数(余数)只有0,1,2,所以其实树形dp就能搞,并且复杂度还低。算是点分治练手了。#include#include#include#include#includeusing namespace std;const int N=20005;const int inf=0x3f3f3f3f;int n,原创 2016-09-16 09:15:26 · 395 阅读 · 0 评论 -
bzoj2599
第一道点分治。给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小. 开一个100W的数组t,t[i]表示权值为i的路径最少边数找到重心分成若干子树后, 得出一棵子树的所有点到根的权值和x,到根a条边,用t[k-x]+a更新答案,全部查询完后然后再用所有a更新t[x]这样可以保证不出现点分治中的不合法情况把一棵树的所有子树搞完后再遍历所有子树恢复T数组,如果用原创 2016-09-15 22:40:07 · 346 阅读 · 0 评论 -
bzoj3697(点分治)
采药人的药田是一个树状结构,每条路径上都种植着同种药材。采药人以自己对药材独到的见解,对每种药材进行了分类。大致分为两类,一种是阴性的,一种是阳性的。采药人每天都要进行采药活动。他选择的路径是很有讲究的,他认为阴阳平衡是很重要的,所以他走的一定是两种药材数目相等的路径。采药工作是很辛苦的,所以他希望他选出的路径中有一个可以作为休息站的节点(不包括起点和终点),满足起点到休息站和休息站到终点原创 2016-09-16 13:01:42 · 402 阅读 · 0 评论