zoukankan      html  css  js  c++  java
  • HDoj-1233-还是畅通project-prim算法

    还是畅通project
    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 25888    Accepted Submission(s): 11530
    problem Description
    某省调查乡村交通状况。得到的统计表中列出了随意两村庄间的距离。省政府“畅通project”的目标是
    使全省不论什么两个村庄间都能够实现公路交通(但不一定有直接的公路相连。仅仅要能间接通过公路可达就可以),
    并要求铺设的公路总长度为最小。请计算最小的公路总长度。


    Input
    測试输入包括若干測试用例。

    每一个測试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行相应村庄间的距离,
    每行给出一对正整数。各自是两个村庄的编号。以及此两村庄间的距离。为简单起见。村庄从1到N编号。当N为0时,
    输入结束,该用例不被处理。




    Output
    对每一个測试用例,在1行里输出最小的公路总长度
    Sample Input
    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


    Sample Output
    3

    5

    #include<stdio.h>
    #include<string.h>
    #define N 1000000
    int map[110][110];
    int prim(int n)
    {
    	int used[110],lowcost[110],i,j,k,min,sum=0;//sum 
    	memset(used,0,sizeof(used));
    	memset(lowcost,0,sizeof(lowcost));
    	for(i=1;i<=n;i++)
    	{
    		lowcost[i]=map[i][1];
    	}
    	for(i=1;i<n;i++)
    	{
    		min=N;
    		for(j=2;j<=n;j++)
    		{
    			if(min>lowcost[j] && used[j]==0)
    			{
    				min=lowcost[j];
    				k=j;
    			}
    		}
    		sum+=min;
    		used[k]=1;          //used[k]=0;
    		for(j=1;j<=n;j++)
    		{
    			if(used[j]==0 && lowcost[j]>map[k][j])
    				lowcost[j]=map[k][j];
    		}
    	}
    	return sum;
    }
    int main()
    {
    	int n,m,i,j,a,b,c;
    	while(~scanf("%d",&n),n)
    	{
    		for(i=1;i<=n;i++)
            { 
    		    for(j=1;j<=n;j++)
                {
                    if(i==j) 
    					map[i][j]=0;
                    else 
                        map[i][j]=N;
                }
            }
    		m=n*(n-1)/2;   
         	for(i=0;i<m;i++){ 
                    scanf("%d%d%d",&a,&b,&c);
                    map[a][b]=map[b][a]=c;
           	}
           	printf("%d
    ",prim(n));
    	}
    return 0;
    }
    
    
     



  • 相关阅读:
    mysql5.7.11修改root默认密码
    linux tar文件解压
    用Maven插件生成Mybatis代码/数据库
    java对象与json对象间的相互转换
    json串转对象
    maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener
    MyBatis多数据源配置(读写分离)
    使用HTML5 Web存储的localStorage和sessionStorage方式
    谷歌浏览器 DEV Tools
    数据库建表原则
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6784944.html
Copyright © 2011-2022 走看看