题意:
给出一个边上带权的无根树;
求距离不大于m的结点对数;
多组数据,n
题解:
1/8个男人留念吧。。
学了树的分治之后来切这道题,听别人讲完写写就A了;
但是发现自己模板写的好烂,改了一大通;
这题就是考虑点分治,每次在当前子树中找经过重心的点对数;
那么就是将以重心为根的距离dis数组排序,然后双指针乱扫线性找出结点对数;
但是这里可能会出现在同一子树中的情况...
分类:
其他好文 时间:
2015-07-22 10:50:00
阅读次数:
107
题目链接:hdu 2196题目大意:有n台电脑,每台电脑之间都用电缆相连,当然了这是n-1边树。然后问每台电脑所能到达的最远电脑的距离。思路:首先第一反应思路有点像单源最长路径。。。但是有n台电脑,都来一发估摸着n^2logn的时间复杂度(果断t了)。后来想想又有点树的分治的感觉,分枝节处理,,,,...
分类:
其他好文 时间:
2015-07-10 14:57:17
阅读次数:
134
首先 看下图(1)选取一个点将无根树转为有根树(2)递归处理每一颗以根结点的儿子为根的子树(3)复杂度为O(logn)关于根的话,就是所谓的重心http://blog.csdn.net/u013076044/article/details/45915745重心求出,后面的问题即迎刃而解
分类:
其他好文 时间:
2015-05-26 18:26:25
阅读次数:
123
题目大意:给出一棵N个点的树,每条边都有相应的权值。
先给出K,要求你找出权值小于等于k的(u,v)对解题思路:具体的思路可以参考漆子超的《分治算法在树的路径问题中的应用》这篇论文。#include
#include
#include
using namespace std;
#define maxn 10010
vector Nod...
分类:
其他好文 时间:
2015-05-16 09:11:42
阅读次数:
158
这种动态点分治嘛,GDKOI时听打到了,也有同学讲到了,所以印象比较深刻也就想出来了,然后就在实现方面卡了好久= =不得不说CLJ说得真的太简单了,实现方面根本没提。首先我们可以先用树分治构建出这棵树的分治树,也就是把这棵树的重心作为根节点然后子树为他的子树的重心这样递归下去,然后每个节点存的是其子...
分类:
其他好文 时间:
2015-04-12 22:45:13
阅读次数:
318
多校的题 切了5 6题 就这道会点= =其他都是些什么树的分治 图论的一些东西= =这题 贪心 不难发现吧 每次都尽量选取各自都能获得1分的方案 但可能会出现1 0这种只能一个人得1分 一个人得0分得的方案。一开始 我很sb地 wa在任意选取了2人 比较他们得分大小。。正确姿势当然是要 从大到小的来...
分类:
其他好文 时间:
2014-12-18 18:22:44
阅读次数:
171
题目大意:给出一棵树,问有没有两点之间的距离是k的。多组数据
思路:和IOI2011的Race一样,比那个简单。读入太恶心了,我是上网上抄的别人的主函数。
CODE:
#include
#include
#include
#include
#define MAX 200010
#define INF 0x3f3f3f3f
using namespace std...
分类:
其他好文 时间:
2014-10-12 14:22:28
阅读次数:
463
题目大意:给出一棵树,将树中的一个节点去掉之后,这棵树会分裂成一些联通块,求去掉哪些点之后,所有联通块的大小不超过所有节点的一半,并按顺序输出。
思路:基础的子树统计问题,只要深搜一遍就可以出解。这个步骤和求树的重心很像,是树分治的基础。
CODE:
#include
#include
#include
#include
#define MAX 10010
u...
分类:
其他好文 时间:
2014-10-12 12:07:57
阅读次数:
168
题目大意:(同poj1741,刷一赠一系列)
CODE:
#include
#include
#include
#include
#define MAX 20010
#define INF 0x3f3f3f3f
using namespace std;
int points,edges,k;
int head[MAX],total;
int next[MAX << 1...
分类:
其他好文 时间:
2014-10-11 19:19:56
阅读次数:
174
题目大意:给出一颗无根树和每条边的权值,求出树上两个点之间距离
思路:树的点分治。利用递归和求树的重心来解决这类问题。因为满足题意的点对一共只有两种:
1.在以该节点的子树中且不经过该节点。
2.路径经过该节点。
对于第一种点,我们递归处理;第二种点,我们可以将所有子树的节点到这个子树的根节点的距离处理出来,然后排序处理出满足要求的点对的个数。
按照正常的树的结构来分割子树,这样...
分类:
其他好文 时间:
2014-10-11 18:14:35
阅读次数:
201