点分治
A_loud_name
23333333~~~
展开
-
点分治1 洛古3806
题目给定一棵有n个点的树询问树上距离为k的点对是否存在。分析其实点分治就是把暴力改的优化而已。。。 被卡常了很难受code// luogu-judger-enable-o2#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>...原创 2018-03-07 20:44:28 · 300 阅读 · 0 评论 -
聪聪可可 洛谷2634 bzoj 2152
题目聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边”上都有一个数...原创 2018-03-08 18:26:43 · 250 阅读 · 0 评论 -
Tree bzoj 1468
题目给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K分析点分治 我们找到树的重心,然后dfs,求出每个点到root的距离deep,然后对deep排序,扫描哪些点对是符合的。 但是,点分治要求处理的路径是经过root,所以如果一条路径是在同一个子树之内的就不符合要求,所以还要对子树dfs一下,然后去重。 接下来处理好root后...原创 2018-04-23 19:13:38 · 300 阅读 · 0 评论 -
[IOI2011]Race bzoj2599
题目给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, K <= 1000000分析开一个100W的数组t,t[i]表示权值为i的路径最少边数 找到重心分成若干子树后, 得出一棵子树的所有点到根的权值和x,到根a条边,用t[k-x]+a更新答案,全部查询完后,再用所有a更新t[x],这样可以保证不出现点分治中的不合法情...原创 2018-04-24 18:05:35 · 385 阅读 · 0 评论