hdu 1863 prime 畅通工程

来源:互联网 发布:淘宝旺旺号是会员名吗 编辑:程序博客网 时间:2024/06/01 10:25

题目  http://acm.hdu.edu.cn/showproblem.php?pid=1863

这个题目很简单,就是这样一下输出格式就可以了。

具体看代码

#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define inf 999999int map[101][101];bool mark[101];int dis[101];int n,m;void prime(){    memset(mark,false,sizeof(mark));    memset(dis,0,sizeof(dis));    int k,i,j,min,sum;    for(i=1;i<=m;i++)    {        dis[i]=map[1][i];    }    sum=0;    mark[1]=true;    dis[1]=0;    for(i=2;i<=m;i++)    {        min=inf;        k=0;        for(j=1;j<=m;j++)        {            if(!mark[j]&&dis[j]<min)            {                min=dis[j];                k=j;            }        }        if(k==0){cout<<"?"<<endl; return ;}         mark[k]=true;        sum+=min;        for(j=1;j<=m;j++)        {            if(!mark[j]&&dis[j]>map[k][j])            {                dis[j]=map[k][j];            }        }    }    cout<<sum<<endl;}int main(){    int i,j,s,t,k;    while(scanf("%d%d",&n,&m)!=EOF,n)    {        memset(map,inf,sizeof(map));        for(i=1;i<=n;i++)        {            scanf("%d%d%d",&s,&t,&k);            map[s][t]=map[t][s]=k;        }        prime();    }    return 0;}


 

原创粉丝点击