随笔分类 - 生成树
1447. Portkey Network
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1447最优比率生成树(最小生成树+二分)黑书 p303代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<map>#include<vector>#include<stack>#include<set>#include<map>#include<queue>#include
阅读全文
sdut 2494 Minimum Spanning Tree?
摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2494按求最小生成树的步骤 先按边的长度进行排序我们把每一个边权相等的一个段看做一个单位那我们一个单位一个单位的求假如求到第k个单位了 无论前面k-1个单位怎么取舍 结果都是前面出现的所有端点都在一个联通块里面无论度第k个单位怎么取舍前k个单位出现的端点也都在一个联通块里(求第k+1个联通块时)所有按照排好的顺序 每个单位是相互独立的对一到了第k个单位时 先把这个单位的所有边先搜一遍 如果哪个边的两个端点不在一个联通块内 则说明它是有资格成为某
阅读全文
1416. Confidential
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1416最小生成树 和次小生成树代码:#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<vector>#include<set>#include<map>#include<string>#include<queue>#include<
阅读全文
poj 1679 The Unique MST
摘要:http://poj.org/problem?id=1679问最小生成树是否唯一 其实就是问次小生成树是否等于最小生成树思路:1 Kruskal 求最小生成树MIN 记录哪些边用了 哪些没有用 并建树2 dfs 从每一点开始 求最小生成树上任意两点间的最长边3 枚举没用过的边加入的情况 取(MIN+此边权-树中此两点间最长边权) 最小的那一个就是次小生成树代码及其注释:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string&g
阅读全文
poj 3164 Command Network
摘要:http://poj.org/problem?id=3164比着别人的代码写的 有些地方还是不理解 但是不能老在这上面耽误 先放一下 以后遇到再慢慢研究#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<map>#include<queue>#include<cmath>#define LL long longusing namespace std;const i
阅读全文
poj 2728 Desert King
摘要:http://poj.org/problem?id=2728分数规划+二分 此题的图过于稠密 需要用prime 找最小生成树代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<queue>#include<string.h>using namespace std;const double eps=1e-5;const int N=1001;const double M=10000000000.0;struct nod
阅读全文
poj 1639 Picnic Planning
摘要:http://poj.org/problem?id=1639最小限制生成树 黑书上有 推荐 我看了上面的解析自己闷头写了一个 不好 我自己看着都乱 唉就这样吧大体就是 先求出除了关键点以外的点形成的若干最小生成树 然后把这些最小生成树和关键点用最短的距离联系起来然后不断点加与关键点之间的的连线 每联一个就会多一个环 然后就得删一个边 把环取消 不过加的边 和删的边的选取必须是加边减去删边的值最小 一旦限度达到 或者更新后不如原来的小了 则放弃更新代码:#include<iostream>#include<cstdio>#include<cstdlib>#in
阅读全文
poj 2031 Building a Space Station
摘要:http://poj.org/problem?id=2031三维最小生成树 1 #include<iostream> 2 #include<cmath> 3 #include<string> 4 #include<algorithm> 5 #include<queue> 6 #include<cstring> 7 #include<cstdio> 8 9 using namespace std;10 11 const int N=105;12 struct node13 {14 double x,y,z;15
阅读全文