poj 2377-prim(最小生成树的最大边权的和)
来源:互联网 发布:英语视频软件app 编辑:程序博客网 时间:2024/05/17 23:56
Bad Cowtractors
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 9094 Accepted: 3894
Description
Bessie has been hired to build a cheap internet network among Farmer John's N (2 <= N <= 1,000) barns that are conveniently numbered 1..N. FJ has already done some surveying, and found M (1 <= M <= 20,000) possible connection routes between pairs of barns. Each possible connection route has an associated cost C (1 <= C <= 100,000). Farmer John wants to spend the least amount on connecting the network; he doesn't even want to pay Bessie.
Realizing Farmer John will not pay her, Bessie decides to do the worst job possible. She must decide on a set of connections to install so that (i) the total cost of these connections is as large as possible, (ii) all the barns are connected together (so that it is possible to reach any barn from any other barn via a path of installed connections), and (iii) so that there are no cycles among the connections (which Farmer John would easily be able to detect). Conditions (ii) and (iii) ensure that the final set of connections will look like a "tree".
Realizing Farmer John will not pay her, Bessie decides to do the worst job possible. She must decide on a set of connections to install so that (i) the total cost of these connections is as large as possible, (ii) all the barns are connected together (so that it is possible to reach any barn from any other barn via a path of installed connections), and (iii) so that there are no cycles among the connections (which Farmer John would easily be able to detect). Conditions (ii) and (iii) ensure that the final set of connections will look like a "tree".
Input
* Line 1: Two space-separated integers: N and M
* Lines 2..M+1: Each line contains three space-separated integers A, B, and C that describe a connection route between barns A and B of cost C.
* Lines 2..M+1: Each line contains three space-separated integers A, B, and C that describe a connection route between barns A and B of cost C.
Output
* Line 1: A single integer, containing the price of the most expensive tree connecting all the barns. If it is not possible to connect all the barns, output -1.
Sample Input
5 81 2 31 3 72 3 102 4 42 5 83 4 63 5 24 5 17
Sample Output
42
Hint
OUTPUT DETAILS:
The most expensive tree has cost 17 + 8 + 10 + 7 = 42. It uses the following connections: 4 to 5, 2 to 5, 2 to 3, and 1 to 3.
The most expensive tree has cost 17 + 8 + 10 + 7 = 42. It uses the following connections: 4 to 5, 2 to 5, 2 to 3, and 1 to 3.
我们知道最小生成树的边是n条,用它来判断输出
#include<cstdio>#include<cmath>#include<string>#include<cstring>#include<algorithm>#include<iostream>#include<cstring>using namespace std;#define INF 99999999999#define sf scanf#define pr printfint map[2005][2005];int dis[2005];int vis[2005];void prim (int n) {int k;memset(vis, 0 ,sizeof(vis));for (int i = 0; i < n; i ++)dis[i] = map[1][i];dis[1] = 0;vis[1] = 1;int ans = 0;int count = 1;for (int i = 0; i < n; i ++) {int maxn = 0;for (int j = 0; j < n; j ++) {if(!vis[j] && dis[j] > maxn) {maxn = dis[j];k = j;}}if(maxn == 0) break;ans += dis[k];count ++;vis[k] = 1;for (int j = 0; j < n; j ++) {if(!vis[j] && map[k][j] > dis[j])dis[j] = map[k][j];}}if(count == n) printf("%d\n", ans);else printf("-1\n");}void init (int n,int m) {for (int i = 0;i < n; i ++)for (int j = 0; j < m; j ++){map[i][j] = 0;}}int main () {int n,m;while (scanf("%d %d", &n, &m) != EOF) {init(n, m);while (m --) {int a,b,c;sf("%d%d%d", &a, &b, &c);map[a - 1][b - 1] = map[b - 1][a - 1] = max (map[a - 1][b - 1], c);}prim(n);}return 0;}
- poj 2377-prim(最小生成树的最大边权的和)
- prim算法求最小生成树的最大边--poj2253
- poj 2485 最小生成树中的最大边 prim
- POJ 1797和2253 最大生成树的最小边 和 最小生成树的最大边
- poj 2485 Highways prim最小生成树 基础 球最小生成树中得最大边
- poj 2377 最大生成树 最小生成树的变形
- 最小生成树的prim
- POJ 1789 Truck History prim的最小生成树题解
- POJ2485 求最小生成树的最大边 (裸prim)
- POJ 2377 最大生成树 prim实现
- (prim算法题型一)求最小生成树的权值和、路径、边值的最小和最大值。
- poj 2395 最小生成树的最大边
- POJ 2485 Highways 最小生成树的最大边
- POJ 1861 最小生成树最大的边及记录
- POJ 2395 Out of Hay(最小生成树—prim算法记录最大边)
- Prim 算法生成的最小生成树
- 最小生成树的prim算法和kruscal算法
- POJ2349—最小生成树的Kruskal和Prim实现
- sort algorithm
- 版本控制工具比较-CVS,SVN,GIT
- 【poj2155】【二维数状数组】Matrix
- 设计模式系列之03-建造者模式(Builder Pattern)
- EOJ 2856 仰望星空 [2011年研究生机试 热身]
- poj 2377-prim(最小生成树的最大边权的和)
- linux下windows文件名乱码解决方法
- 最初不相识,最终不相认
- proxychiain 安装配置, Ubuntu下的代理软件
- Android 上百实例源码分析以及开源分析
- 最初不相识,最终不相认
- 合格的程序员
- bmp位图相关知识
- 杭电