还是畅通工程
2016-05-16 20:11
183 查看
Hot~~招聘——巴卡斯(杭州),亚信科技,壹晨仟阳(杭州) |
还是畅通工程Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 37962 Accepted Submission(s): 17120 [align=left]Problem Description[/align] 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。 [align=left]Input[/align] 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。 当N为0时,输入结束,该用例不被处理。 [align=left]Output[/align] 对每个测试用例,在1行里输出最小的公路总长度。 [align=left]Sample Input[/align] 3 1 2 1 1 3 2 2 3 4 4 1 2 1 1 3 4 1 4 1 2 3 3 2 4 2 3 4 5 0 [align=left]Sample Output[/align] 3 5 HintHint Huge input, scanf is recommended. [align=left]Source[/align] 浙大计算机研究生复试上机考试-2006年 [align=left]Recommend[/align] JGShining | We have carefully selected several similar problems for you: 1232 1102 1875 1879 1301 #include<iostream> #include<cstdio> using namespace std; #define MAX 505 #define MAXCOST 0x7fffffff int graph[MAX][MAX]; int prim(int graph[][MAX], int n) { int lowcost[MAX]; int mst[MAX]; int i, j, min, minid, sum = 0; for (i = 2; i <= n; i++) { lowcost[i] = graph[1][i]; mst[i] = 1; } mst[1] = 0; for (i = 2; i <= n; i++) { min = MAXCOST; minid = 0; for (j = 2; j <= n; j++) { if (lowcost[j] < min && lowcost[j] != 0) { min = lowcost[j]; minid = j; } } //cout << "V" << mst[minid] << "-V" << minid << "=" << min << endl; sum += min; lowcost[minid] = 0; for (j = 2; j <= n; j++) { if (graph[minid][j] < lowcost[j]) { lowcost[j] = graph[minid][j]; mst[j] = minid; } } } return sum; } int main() { int i, j, k, m, n; int x, y, cost; while(scanf("%d",&m),m) { //cin >> m >> n;//m=顶点的个数,n=边的个数 n=(m*(m-1))/2; for (i = 1; i <= m; i++) { for (j = 1; j <= m; j++) { graph[i][j] = MAXCOST; } } for (k = 1; k <= n; k++) { cin >> i >> j >> cost; graph[i][j] = cost; graph[j][i] = cost; } cost = prim(graph, m); cout <<cost<< endl; } return 0; } |
相关文章推荐
- 指针指向数组并指定数组首地址的一种方法
- css 元素选择器实例
- 你在某某项目中写了/自动化了几个测试用例?
- 寻找发帖水王01
- [PWA] 7. First Cache when installed
- C语言双向循环链表实现
- HDU 4455 Substring(DP)
- java 学习曲线(Java学习书籍推荐)
- 图像处理的一个简化的磨皮算法
- Deep Learning(深度学习)学习笔记整理系列之(三)
- KeepUpdating
- Android多进程
- MySQL数据检索+查询+全文本搜索
- descendantFocusability属性用法简析
- hiho一下 第九十八周题目1 : 搜索一·24点
- 【连载】关系型数据库是如何工作的?(16) - 查询管理器之Merge Join
- 计算机视觉与模式识别国际期刊整理
- Python WSGI
- 搭建SVN
- Deep Learning(深度学习)学习笔记整理系列之(二)