码迷,mamicode.com
首页 >  
搜索关键字:生成树    ( 4540个结果
最小生成树
尽管堆优化的Prim用于处理稠密图不错,但是实际上很少有题目稠密图。所以一般直接上用并查集优化的Kruskal,简洁高效。int find(int x) {return x!=p[x]?p[x]=find(p[x]):x;}struct edge{ int u,v,c;}Edge[10001]...
分类:其他好文   时间:2014-10-02 21:46:13    阅读次数:243
POJ 2485 Highways (prim最小生成树)
对于终于生成的最小生成树中最长边所连接的两点来说 不存在更短的边使得该两点以不论什么方式联通对于本题来说 最小生成树中的最长边的边长就是使整个图联通的最长边的边长由此可知仅仅要对给出城市所抽象出的图做一次最小生成树 去树上的最长边就可以#includeusing namespace std;int ...
分类:其他好文   时间:2014-10-02 18:13:53    阅读次数:162
UVA 11354 - Bond(树链剖分)
UVA 11354 - Bond 题目链接 题意:给定一个图,要求每次询问两点,求出这两点间路径最大危险系数最小 思路:先求最小生成树,在生成树上每次询问求LCT就可以了,利用树链剖分求解 代码: #include #include #include #include using namespace std; #define lson(x) ((x<<1)+...
分类:其他好文   时间:2014-09-30 20:16:49    阅读次数:214
POJ Big Christmas Tree(基础最短路)
Big Christmas Tree 题目分析:     叫你构造一颗圣诞树,使得 (sum of weights of all descendant nodes) × (unit price of the edge)尽量的小。转换后就是求根节点到每个节点的距离最短,也就是最短路。生成树可能会超时,我没试过。然后,求解最短路要用优化的解法不然会超时。最后的答案就是:sum = w[1]...
分类:其他好文   时间:2014-09-30 15:00:19    阅读次数:173
BZOJ1016 [JSOI2008]最小生成树计数
江苏就是江苏啊,题目质量高。看到题的时候只YY出了第一个性质:MST中边权相同的的边的个数是一定的。(证略,可以用反证法)后来上网找题解,发现还有第二个性质:MST如果用Kruskal来做,做完长度为x的所有边以后,此时图的连通性是确定的。(这也是很明显的)于是嘛。。。先算出每个长度的边的cnt,然...
分类:Web程序   时间:2014-09-30 09:42:12    阅读次数:313
cf Inverse the Problem (最小生成树+DFS)
题意:N个点。N行N列d[i][j]。d[i][j]:结点i到结点j的距离。问这N个点是否可能是一棵树。是输出YES,否则输出NO。思路:假设这个完全图是由一棵树得来的,则我们对这个完全图求最小生成树,得到原树。(画个图就明白)故我们对完全图求最小生成树,然后用DFS从这棵树上的每个点出发,判断距离...
分类:其他好文   时间:2014-09-30 03:27:22    阅读次数:319
Codeforces Round #270 D C B A
谈论最激烈的莫过于D题了!看过的两种做法不得不ORZ,特别第二种,简直神一样!!!!!1th:构造最小生成树。 我们提取所有的边出来按边排序,因为每次我们知道边的权值>0,之后每次把边加入集合中,不断构造,类似 kruskal算法,构造出边后再对每个点进行整张图的DFS求距离复杂度O(N^2lgN....
分类:其他好文   时间:2014-09-29 21:33:11    阅读次数:202
poj2728 Desert King,最优比例生成树
题意:有n个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水,只要两个村庄之间有一条路即可,          建造水管距离为坐标之间的欧几里德距离(好象是叫欧几里德距离吧),费用为海拔之差          现在要求方案使得费用与距离的比值最小 很显然,这个题目是要求一棵最优比率生成树, 0-1分数规划,0-1分数规划是分数规划的一种特殊情况,分数规划适用于求解最优化问题的,对于...
分类:其他好文   时间:2014-09-29 20:43:02    阅读次数:172
Codeforces Round #270 D Design Tutorial: Inverse the Problem --MST + DFS
题意:给出一个距离矩阵,问是不是一颗正确的带权树。解法:先按找距离矩阵建一颗最小生成树,因为给出的距离都是最短的点间距离,然后再对每个点跑dfs得出应该的dis[][],再对比dis和原来的mp是否一致即可。首先还要判断一些东西。具体看代码吧。代码:#include #include #includ...
分类:其他好文   时间:2014-09-29 14:43:01    阅读次数:228
Codeforces 472D
看官方题解提供的是最小生成树,怎么也想不明白,you can guess and prove it! 看了好几个人的代码,感觉实现思路全都不一样,不得不佩服cf题目想法的多样性 下面说说我自己的理解,将1作为根,对于任意两点存在两种关系: 1.一个点位于另一个点的子树上。两点到1的距离之差绝对值等于两点距离。 2.两个点在某一个点的不同子树上。两点到1距离之和减去两点距离等于两倍某个点到1...
分类:其他好文   时间:2014-09-29 11:12:00    阅读次数:193
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!