Constructing Roads POJ
来源:互联网 发布:数据量化方法 编辑:程序博客网 时间:2024/06/08 03:01
/**题意:有n个村子,他们现在需要修路,给出每两个村庄的距离,求连通村庄所需修路的最短长度,但是有些路已经是修好了,所以不需要重修,简单的说就是边值为0;这个也没什么,很简单;*/#include<cstdio>#include<cmath>#include<cstring>using namespace std;const int inf=0x3f3f3f3f;const int maxn=1e2+7;int dis[maxn],mmp[maxn][maxn],ans;bool vis[maxn];int n,m;void prim(){ ans=0; for(int i=1;i<=n;i++) { dis[i]=mmp[1][i]; vis[i]=0; } vis[1]=1; for(int i=1;i<=n;i++) { int k=-1; double Min=inf; for(int j=1;j<=n;j++) { if(!vis[j]&&dis[j]<Min) { Min=dis[j]; k=j; } } if(k==-1) break; vis[k]=1; ans+=Min; for(int j=1;j<=n;j++) if(!vis[j]&&dis[j]>mmp[k][j]) dis[j]=mmp[k][j]; } printf("%d\n",ans);}int main (){ scanf("%d",&n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i==j) mmp[i][j]=0; else mmp[i][j]=inf; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%d",&mmp[i][j]); scanf("%d",&m); for(int i=1;i<=m;i++) { int a,b; scanf("%d %d",&a,&b); mmp[a][b]=mmp[b][a]=0; } prim(); return 0;}
阅读全文
0 0
- POJ 2421Constructing Roads
- poj 2421 Constructing Roads
- poj 2421 Constructing Roads
- POJ 2421 Constructing Roads
- POJ 2421 Constructing Roads
- POJ 2421 constructing roads
- POJ-2421-Constructing Roads
- POJ 2421 Constructing Roads
- POJ:2421 Constructing Roads
- poj 2421Constructing Roads
- POJ 2421 Constructing Roads
- POJ 2421 Constructing Roads
- POJ-2421 Constructing Roads
- POJ 2421 Constructing Roads
- POJ 2421 Constructing Roads
- poj 2421 Constructing Roads
- poj 2421 Constructing Roads
- POJ - 2421 Constructing Roads
- mariadb-server
- 二叉树
- 猜数字游戏
- 【PHP】XAMPP不下载自带MYSQL,配置为原已安装MYSQL方法
- RTMP、RTSP、HTTP协议
- Constructing Roads POJ
- uvm学习总结(1)--激励
- Mybatis(一)入门程序
- Android 插件化和热修复知识梳理
- Neo4j图形数据库环境安装(一)
- 171126 Misc-湖湘杯部分
- 二叉树遍历的应用(递归!递归!递归!)
- dns正反向解析
- 判断一个数是否为质数/素数——从普通判断算法到高效判断算法思路