杭电ACM1863(prim)
来源:互联网 发布:2016 mac pro强制重启 编辑:程序博客网 时间:2024/06/10 06:27
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863
题目大意:中文题目
解题思路:简单的最小生成树,用prim算法解决,不同的是,本题要求若不能联通所有村庄则输出“?”,只要在prim函数里加一个判断即可,若visit数组全部为true则全部村庄都可联通,若存在一个位置为false则无法联通全部村庄,需要输出“?”。
AC代码:
#include <iostream>#include <string.h>using namespace std;#define INF 2000000int prim(int matrix[105][105],int m){ int result=0; bool visit[105]; int p[m]; for(int i=1;i<=m;i++) p[i] = matrix[1][i]; memset(visit,0,sizeof(visit)); for(int i=1;i<=m;i++) { int min=INF; int index; for(int j=1;j<=m;j++) { if(p[j]<min&&visit[j]==0) { min = p[j]; index = j; } } visit[index] = 1; result+=p[index]; for(int j=1;j<=m;j++) { if(!visit[j]) p[j] = matrix[index][j]<p[j]?matrix[index][j]:p[j]; } } for(int i=1;i<=m;i++) if(!visit[i])return INF; return result;}int main(){ int n,m; int a,b,c; int result; int matrix[105][105]; while(cin>>n) { if(n==0)break; cin>>m; for(int i=1;i<=m;i++) { for(int j=1;j<=m;j++) { matrix[i][j] = INF; if(i==j)matrix[i][j] = 0; } } for(int i=1;i<=n;i++) { cin>>a>>b>>c; matrix[a][b] = matrix[b][a] = c; } result = prim(matrix,m); if(result==INF)cout<<'?'<<endl; else cout<<result<<endl; } return 0;}
0 0
- 杭电ACM1863(prim)
- 杭电acm1863 畅通工程
- 杭电ACM1863(最小生成树)
- 杭电ACM1233(prim)
- 杭电ACM1162(prim)
- 杭电-1233还是畅通工程(kruskal,prim)
- 杭电1162Eddy's picture(prim算法)
- 杭电1102-------------贪心策略-prim算法
- 航电1102-Constructing Roads (prim)
- 杭电3371 Connect the Cities(最小生成树 prim)
- 杭电 ACM HDU 1162 Eddy's picture (最短路 prim算法)
- 杭电oj1875畅通工程再续(prim VS kruskal) 模板题
- 杭电2122Ice_cream’s world III(kruskal算法与prim算法)
- 【最小生成树+Prim】杭电 hdu 1863 畅通工程
- 【最小生成树+Prim】杭电 hdu 1102 Constructing Roads
- 杭电hdu 1233 还是畅通工程 prim
- Constructing Roads HDU杭电1102【Kruscal || Prim】
- Jungle Roads HDU杭电1301 【Kruscal || Prim】
- redhat的bugdb
- 静态库和动态库的区别
- dubbo学习笔记
- javascript之window对象
- (转载)Deep Learning(深度学习)学习笔记整理系列之(五)
- 杭电ACM1863(prim)
- ContentProvider和Uri详解
- Visual Studio 2013 打包C#项目程序
- (转载)Deep Learning(深度学习)学习笔记整理系列之(六)
- 5分钟带你了解什么是MEMS
- arm_linux学习笔记
- [leetcode] 3. Longest Substring Without Repeating Characters
- 单词首字母大写,删除多余空格
- (转载)Deep Learning(深度学习)学习笔记整理系列之(七)