1 #include<cstdio> 2 #include<algorithm> 3 #define N 50010 4 #define M 500010 5 #define rg register 6 #define LL long long 7 using namespace std; 8 in ...
分类:
其他好文 时间:
2018-04-16 18:25:55
阅读次数:
146
题链: http://poj.org/problem?id=1741题解: 树上点分治。 入门题,不多说了。 代码: ...
分类:
其他好文 时间:
2018-03-10 22:10:10
阅读次数:
195
Give a tree with n vertices,each edge has a length(positive integer less than 1001). Define dist(u,v)=The min distance between node u and v. Give an i ...
分类:
其他好文 时间:
2018-02-28 01:07:47
阅读次数:
148
题意:求树中点对距离<=k的无序点对个数。 解题关键:树上点分治,这个分治并没有传统分治的合并过程,只是分成各个小问题,并将各个小问题的答案相加即可,也就是每层的复杂度并不在合并的过程,是在每层的处理过程。 此题维护的是树上路径,考虑点分治。 点分治的模板题,首先设点x到当前子树跟root的距离为, ...
分类:
其他好文 时间:
2017-09-06 19:54:50
阅读次数:
295
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=21522152: 聪聪可可
Time Limit: 3 Sec Memory Limit: 259 MB
Submit: 1701 Solved: 884
[Submit][Status][Discuss]
Description聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家...
分类:
其他好文 时间:
2016-05-18 19:46:31
阅读次数:
164
题目大意:一棵带边权无根树,边权代表距离,求距离小于等于k的点对儿数。 题目分析:这两个点之间的路径只有两种可能,要么经过根节点,要么在一棵子树内。定义depth(i)表示点 i 到根节点的距离,belong(i)表示 i 所属的子树。如果路径经过根节点,那么满足depth(i)+depth(j)< ...
分类:
其他好文 时间:
2016-04-15 00:37:06
阅读次数:
150
题意:给一个N个节点的带权树,求长度小于等于K的路径条数思路:选取一个点作为根root,假设f(root)是当前树的答案,那么答案来源于两部分:(1)路径不经过root,那么就是完全在子树内,这部分可以递归统计(2)路径经过root,这部分可以通过容斥原理统计,具体见有关点分治资料。。。点分治有个特...
分类:
其他好文 时间:
2015-11-12 21:23:54
阅读次数:
254
树上路径的f(u,v)=路径上所有点的乘积。树上每个点的权值都是由给定的k个素数组合而成的,如果f(u,v)是立方数,那么就说明f(u,v)是可行的方案。问有多少种可行的方案。f(u,v)可是用状态压缩来表示,因为最多只有30个素数, 第i位表示第i个素数的幂,那么每一位的状态只有0,1,2因为3和...
分类:
其他好文 时间:
2015-08-30 12:48:28
阅读次数:
205
和poj1747相比起来,只不过是限制条件多了一维。而多了这一维,所以需要用树状数组来维护,从而快速得到答案。因为没注意传进树状数组函数的参数可能是 4 #include 5 #include 6 #include 7 #include 8 #include 9 #includ...
分类:
编程语言 时间:
2015-08-29 21:34:01
阅读次数:
184
题目地址:HDU 5016
先两遍DFS预处理出每个点距最近的基站的距离与基站的编号。
然后找重心,求出每个点距重心的距离,然后根据dis[x]+dis[y]#include
#include
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2015-07-21 20:40:28
阅读次数:
122