
最小生成树
文章平均质量分 65
yuanba_xs
分享程序员的体会与知识
展开
-
uva10048 floyd或者kruscal
/*题目大意:从a点到b点, 找到一条路径,使得这条路径上的所有噪音中最大的值是所有路径中最小的, 这个噪音值便是要求的。若不连通,输出no path方法1:floyd算法,改变map[i][j]的含义,改变松弛条件:map[i][j] = min(map[i][j], max(map[i][k], map[k][j]));方法2:kruscal算法,先对边排序,然后从小到大加边。如果原创 2017-02-05 14:00:12 · 253 阅读 · 0 评论 -
hdu1863畅通工程
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。Input测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M ( 行对应村庄间道路的成本,每行给出一对正整数,分别原创 2017-02-25 16:48:09 · 296 阅读 · 0 评论 -
hdu1875畅通工程再续
相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考察小组RPRush对百岛湖的情况充分了解后,决定在符合条件的小岛间建上桥,所谓符合条件,就是2个小岛之间的距离不能小于10米,也不能大于1000米。当然,为了节省资金,只要原创 2017-02-25 16:42:02 · 849 阅读 · 0 评论 -
hdu1879继续畅通工程
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。Input测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 1对应村庄间道路的成本及修建状态,每行给4个正原创 2017-02-25 15:28:08 · 272 阅读 · 0 评论 -
poj1287最小生成树水
已知有n个点,m条边,求最小生成树。Sample Input1 02 31 2 372 1 171 2 683 71 2 192 3 113 1 71 3 52 3 893 1 911 2 325 71 2 52 3 72 4 84 5 113 5 101 5 64 2 120Sample Output原创 2017-02-25 14:52:46 · 257 阅读 · 0 评论 -
poj2031最小生成树(建图)(注意c++与g++的区别)
/*题意:已知n个球,已知各个点的坐标和半径,求使各个求相连所需的桥的最短长度Sample Input310.000 10.000 50.000 10.00040.000 10.000 50.000 10.00040.000 40.000 50.000 10.000230.000 30.000 30.000 20.00040.000 40.000 40.000 20.0005原创 2017-02-04 14:20:04 · 244 阅读 · 0 评论 -
poj3522求一棵生成树使最大的边和最小的边差值最小
/*题目:给出一张图,求一棵生成树使得最大边权和最小边权差值最小*//*思路:对边权排序,依次枚举最小边,再与后边组成生成树,直到满足题意。若不连通,输出-1,反之,输出差值*/#include #include #define N 100using namespace std;const int inf = 0x3f3f3f3f;typedef struct note {原创 2017-02-04 12:44:18 · 1047 阅读 · 0 评论 -
hdu1598 求满足最大权值最小权值差最小的生成树
/*题意:已知一张图,给定起点终点,求出包含起点和终点的生成树:使得生成树的最大边权与最小边权之差最小,并输出其值。若不连通,输出-1*//*思路:先对边按权值排序。然后从最小的边开始枚举至最大边,然后枚举比当前边大的所有边,直到出现满足条件的生成树为止,此时更新ans。*/#include #include #include #include #define N 205原创 2017-02-04 11:48:34 · 789 阅读 · 0 评论 -
poj1215
/*题目:对于数据,数据输入的第一行n代表岛屿的个数,当为0是结束程序,接着n - 1行开始时为这岛屿的编号,用大写字母表示,接着是一个整数m,表示与该岛屿连接的字典序大于该岛屿编号的个数,然后该行输入m对数据,每对数据的第一个字母表示与该岛屿连通的岛屿的编号,第二个数字表示要重修两岛屿之间桥所需要的时间,输出数据见样例及原题。Sample Input9A 2 B 12 I 25原创 2017-02-03 22:42:46 · 230 阅读 · 0 评论 -
prime模板
/*prime模板,时间复杂度o(v^2)*/#include #include #define N 1005#define INF 0x3f3f3f3fint map[N][N], dis[N], vis[N];int n, m;int cnt = 0, sum = 0;void init(){ for (int i = 1; i <= n; i++) { for原创 2017-02-03 19:38:18 · 312 阅读 · 0 评论 -
poj2253 求生成树的最大边的最小值
/*描述Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sitting on another stone. He plans to visit her, but since the water is dirty and full of touri原创 2017-02-03 15:28:44 · 463 阅读 · 0 评论 -
Kruscal算法模板
/*时间复杂度:o(eloge),贪心策略:边权值从小到大找*/#include #include #include #include #define N 100005using namespace std;typedef struct note { int u; int v; int w;}edge;edge e[N];int n, m;//分别表示顶点数和边数in原创 2017-02-03 13:19:06 · 342 阅读 · 0 评论 -
poj1751
/*本题就是最小生成树水题,但是一直tle,最后在poj看到有人说只有一组用例,试了试,直接ac,也是跪了。审题一定要认真(虽说是英文吧)*/#include #include #include #define N 755using namespace std;typedef struct node { int x; int y;}point;typedef stru原创 2017-02-06 18:25:29 · 403 阅读 · 0 评论 -
poj2253 求生成树的最大边最小值
描述Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frogwho is sitting on another stone. He plans to visit her, but since the water is dirty andfull of tou原创 2017-02-05 14:07:27 · 405 阅读 · 0 评论 -
hdu1233还是畅通工程
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。Input测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 当N为0时,输入结束,该用例不被处理。Output对每个测试用例,原创 2017-02-25 16:54:27 · 176 阅读 · 0 评论