1001-专题四
来源:互联网 发布:爱的算法免费下载 编辑:程序博客网 时间:2024/06/06 09:32
1.题意:给出村子间的距离,以及已连接的村子,求村子联通需要修的最短路程
2.思路:路程相当于权数,离散数学的思想,我们上课讲的,prim,kruskal算法都可,思路不同,结论相同
3.感想:在这学期的数据结构中也有涉及。
#include<iostream>#include<cstdio>#include<cstring>using namespace std; int gp[105][105];int lowercost[105];int used[105];int n; int prim() { int i,j,k; int sum=0; used[1]=1; for(i=1;i<=n;i++) lowercost[i]=gp[1][i]; for(i=2;i<=n;i++) { int pos; int temp=9999999; for(j=1;j<=n;j++) { if(lowercost[j]<temp&&!used[j]) { temp=lowercost[j]; pos=j; } } used[pos]=1; sum+=lowercost[pos]; for(k=1;k<=n;k++) { if(gp[pos][k]<lowercost[k]&&!used[k]) lowercost[k]=gp[pos][k]; } } return sum; } int main() { int i,j,m,a,b; while(scanf("%d",&n)!=EOF) { memset(lowercost,0,sizeof(lowercost)); memset(used,0,sizeof(used)); for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&gp[i][j]); scanf("%d",&m); while(m--) { scanf("%d%d",&a,&b); gp[a][b]=gp[b][a]=0; } int ans=prim(); printf("%d\n",ans); } return 0;}
0 0
- 专题四 · 1001
- 专题四1001
- 专题四1001
- 1001-专题四
- ACM专题四1001
- 2016sdau课程练习专题四 1001
- 3G专题四
- LDAP专题(四)
- 专题四1003
- 专题四1003
- 专题四 Problem A
- 专题四 Problem B
- 专题四 Problem C
- 专题四 Problem D
- 专题四 Problem E
- 专题四1005
- 专题四1004
- 专题四ACM1003
- 源码剖析目录
- APP开发实战59-Activity启动模式
- memcpy与memmove的区别
- Register-validation.xml常用输入校验
- 字符串移动k位的时间复杂度o(n)空间复杂度o(1)的解法
- 1001-专题四
- 约瑟夫问题的另类java实现
- Installing packages into Canopy User Python from the OS command line
- 《Thinkinginjava》第6章-访问权限控制
- php中get、post和request的用法
- APP开发实战60-Activity启动FLAG
- 用Linq 解决 数据的多字段分组统计(VB.net)
- 快学Scala第8章----继承
- JAVA中native方法调用C语言实现学习