点分治
chty_syq
HA省的OIer
展开
-
【bzoj2152】聪聪可可 点分治
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=2152 【题解】 还是点分治的板子。 统计答案的方法值得一学:用t数组记录连通块中所有点的距离对3取模后的结果,然后当前的答案就是t[0]*t[0]+t[1]*t[2]*2,为什么要乘2呢?——因为同一个点对(u,v)聪聪选u可可选v与聪聪选v可可选u是不一样的。 #include原创 2017-02-18 08:05:33 · 269 阅读 · 0 评论 -
【bzoj2599】Race 点分治
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=2599 【题解】 直接调用黄学长的题解: 开一个100W的数组t,t[i]表示权值为i的路径最少边数 找到重心分成若干子树后, 得出一棵子树的所有点到根的权值和x,到根a条边,用t[k-x]+a更新答案,全部查询完后 然后再用所有a更新t[x] 这样可以保证不原创 2017-02-18 09:01:15 · 379 阅读 · 0 评论 -
【bzoj3697】采药人的路径 点分治
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=3697 【题解】 来自出题人hta的题解: 本题可以考虑树的点分治。问题就变成求过根满足条件的路径数。 路径上的休息站一定是在起点到根的路径上,或者根到终点的路径上。 如何判断一条从根出发的路径是否包含休息站?只要在dfs中记录下这条路径的和x,同时用个标志数组判断这条路径是否存在原创 2017-02-18 11:12:13 · 350 阅读 · 0 评论 -
【CF#715C】Digit Tree 点分治+乘法逆元
AC通道:http://codeforces.com/problemset/problem/715/C 【题目大意】 给定一个有N个点的树,问其中有多少条路径满足他们的边权连成的数对M取余为0。 其中gcd(M,10)=1。 【题解】 首先是点分治的套路,然后这题的主要难点在如何统计连通块中的答案。 对于x→y的路径,也就是x→root→y,我们可以处理出dis[x]和dis[y]原创 2017-02-19 21:45:42 · 1419 阅读 · 0 评论 -
【poj1741】tree 点分治
【题目大意】 给一颗n个节点的树,每条边上有一个距离v(v 定义d(u,v)为u到v的最小距离; 给定k值,求有多少点对(u,v)使u到v的距离小于等于k。 其中n 【题解】 蒟蒻发现很久以前学的点分治已经忘得差不多了,于是恶补一发 所谓点分治,就是枚举每一个点为根的情况,计算当前根对答案的贡献。 具体可以参考http://www.cnblogs.com/chty/p/5912原创 2017-02-18 07:20:08 · 337 阅读 · 0 评论