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