zoj1372Networking(模板题)
来源:互联网 发布:淘宝假货率 编辑:程序博客网 时间:2024/06/03 12:40
Networking
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 1 Accepted Submission(s) : 1
Your task is to design the network for the area, so that there is a connection (direct or indirect) between every two points (i.e., all the points are interconnected, but not necessarily by a direct cable), and that the total length of the used cable is minimal.
Input
The input file consists of a number of data sets. Each data set defines one required network. The first line of the set contains two integers: the first defines the number P of the given points, and the second the number R of given routes between the points. The following R lines define the given routes between the points, each giving three integer numbers: the first two numbers identify the points, and the third gives the length of the route. The numbers are separated with white spaces. A data set giving only one number P=0 denotes the end of the input. The data sets are separated with an empty line.
The maximal number of points is 50. The maximal length of a given route is 100. The number of possible routes is unlimited. The nodes are identified with integers between 1 and P (inclusive). The routes between two points i and j may be given as i j or as j i.
Output
For each data set, print one number on a separate line that gives the total length of the cable used for the entire designed network.
Sample Input
1 0
2 3
1 2 37
2 1 17
1 2 68
3 7
1 2 19
2 3 11
3 1 7
1 3 5
2 3 89
3 1 91
1 2 32
5 7
1 2 5
2 3 7
2 4 8
4 5 11
3 5 10
1 5 6
4 2 12
0
Sample Output
0
17
16
26
最小生成树的模板题,这一类题有很多,主要是让记模板的,为以后做打算,这类题,代码几乎一模一样,我做了好几道了全部都是52行代码。以后会越敲越快,秒写52行无bug。
克鲁斯卡尔。
附ac代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct node{int start;int end;int cost; }t[10010]; int cmp(node a,node b) { return a.cost <b.cost ; } int per[110]; int find(int x) { int r=x; while(r!=per[r]) r=per[r]; return r; } int join(int x,int y) { int fx=find(x); int fy=find(y); if(fx!=fy) { per[fx]=fy; return 1; } return 0; } int main() { int i,n,m; while(scanf("%d",&n),n) { for(i=0;i<110;i++) per[i]=i; scanf("%d",&m); for(i=0;i<m;i++) scanf("%d%d%d",&t[i].start,&t[i].end,&t[i].cost); sort(t,t+m,cmp); int sum=0; for(i=0;i<m;i++) if(join(t[i].start,t[i].end)) sum=sum+t[i].cost; printf("%d\n",sum); } return 0; }
- zoj1372Networking(模板题)
- 划分树模板+模板题--hdu4251
- 网络流模板(模板题:POJ1273)
- 【模板】三分法 (模板题:洛谷P3382)
- 树链剖分模板题(luogu3384 【模板】树链剖分)
- POJ 3974 Palindrome【manacher】【模板题】【模板】
- 一道C++模板题
- hdu1874 dijkstra模板题
- 凸包模板题
- poj3461 kmp 模板题
- poj3461 KMP模板题
- HDU 2966 模板题
- KMP模板题
- 双向DFS模板题
- poj3461 kmp模板题
- POJ1144Network(求割点模板题)
- HDU1711 模板题-KMP
- HDU1289 Tarjan-模板题
- 记录一些第三方
- MCS 最小生成树#2 Kruskal
- service sshd restart sshd unrecognized service
- 黑马程序员——一维数组指针探究
- 卸载mysql5.1后再次安装不成功的解决方法
- zoj1372Networking(模板题)
- 知乎-国外知名 IT 企业是如何做测试的?
- UINavigationController的代理方法
- hdu 1800 Flying to the Mars 详细题解 哈希
- Struts2+mysql登录验证实例
- activity之间的数据传递方法
- 卷积神经网络(CNN)笔记
- Eddy's picture 1162
- 【二十七】图的遍历--DFS、BFS