1003 电话连线
来源:互联网 发布:大数据培训机构排行榜 编辑:程序博客网 时间:2024/05/16 00:39
题目描述 Description
一个国家有n个城市。若干个城市之间有电话线连接,现在要增加m条电话线(电话线当然是双向的了),使得任意两个城市之间都直接或间接经过其他城市有电话线连接,你的程序应该能够找出最小费用及其一种连接方案。
输入描述 Input Description
输入文件的第一行是n的值(n<=100).
第二行至第n+1行是一个n*n的矩阵,第i行第j列的数如果为0表示城市i与城市j有电话线连接,否则为这两个城市之间的连接费用(范围不超过10000)。
输出描述 Output Description
输出文件的第一行为你连接的电话线总数m,第二行至第m+1行为你连接的每条电话线,格式为i j,(i<j), i j是电话线连接的两个城市。输出请按照Prim算法发现每一条边的顺序输出,起始点为1.
第m+2行是连接这些电话线的总费用。
样例输入 Sample Input
5
0 15 27 6 0
15 0 33 19 11
27 33 0 0 17
6 19 0 0 9
0 11 17 9 0
样例输出 Sample Output
2
1 4
2 5
17
数据范围及提示 Data Size & Hint
n<=100
分类标签 Tags
最小生成树 图论 prim算法
#include<cstdio>#include<iostream>#include<algorithm>using namespace std;#define maxn 105#define inf 1000000int i,j,n,ans; //n个城市,总费用为ansint edge[maxn][maxn],key[maxn],p[maxn],visit[maxn],f[maxn],l[maxn],m; //两边的权 该点距已扩展结点的最小权 父结点 是否已扩展 连线的两边结点及结点数 int main(){ scanf("%d",&n); for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&edge[i][j]); for(i=1;i<=n;i++)key[i]=inf; //初始化最小权 key[1]=0;p[1]=1; //从结点1开始 int mini,minn; //mini:距已扩展最短的点,minn:其最小权 for(i=0;i<n;i++) //实际上最多扩展n-1次 { minn=inf; for(j=1;j<=n;j++)if(!visit[j]&&key[j]<minn){mini=j;minn=key[j];} //搜索最短结点 visit[mini]=1;ans+=key[mini]; //扩展 if(key[mini]){f[m]=min(p[mini],mini);l[m++]=max(p[mini],mini);} //连线 for(j=1;j<=n;j++)if(!visit[j]&&key[j]>edge[mini][j]){key[j]=edge[mini][j];p[j]=mini;} } //更新各点距已扩展结点的最小权 printf("%d\n",m); for(i=0;i<m;i++)printf("%d %d\n",f[i],l[i]); printf("%d\n",ans); return 0;}
0 0
- 【wikioi】1003 电话连线
- 1003 电话连线
- CodeVS 1003 电话连线
- 【codevs 1003】电话连线
- 【codevs 1003】电话连线
- codevs 1003 电话连线
- 1003 电话连线
- codevs 1003 电话连线
- Codevs 1003 电话连线
- codevs 1003 电话连线
- Codevs 1003 电话连线
- Code Vs 1003 电话连线
- CODE[VS] 1003 电话连线
- CODE[VS] 1003 电话连线
- 电话连线
- wiki1003电话连线
- codevs1003电话连线
- CODEVS 电话连线
- 二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)
- 从2D图片生成3D模型(3D-GAN)
- FileWriter和BufferedWriter用处,区别
- 第二十三课:神秘的临时对象----------狄泰软件学院
- 分布式事务之说说TCC事务
- 1003 电话连线
- android_106_获取控件的高
- 输入2个正整数A,B,求A与B的最大公约数。 Input 2个数A,B,中间用空格隔开。(1<= A,B <= 10^9) Output 输出A与B的最大公约数。
- 如何设置source insight 的字体大小
- 2381 军训
- 1010 过河卒
- 第二十四课:经典问题解析二----------狄泰软件学院
- 第二章 从内核出发
- LeetCode 30 Substring with Concatenation of All Words