首页 > 学院 > 开发设计 > 正文

(最小生成树)HDU 1233 还是畅通工程

2019-11-06 08:34:29
字体:
来源:转载
供稿:网友

查看原题

题意

最小生成树

思路

PRim 我套了之前的模板

代码

#include <iostream>using namespace std;int main(int argc, char *argv[]){ int n,a,b,x; while(cin>>n&&n){ int num[101][101],visted[101]={0},lowest[101]={999999}; for(int i=0;i<=n;i++){ for(int j=0;j<=n;j++){ num[i][j]=999999; } } for(int i=0;i<n*(n-1)/2;i++){ cin>>a>>b>>x; if(x<num[a][b]){ num[a][b]=num[b][a]=x; } } int step=1,temp,sum=0,i,j; for(i=1;i<=n;i++){ lowest[i]=num[step][i]; } visted[step]=1; for(i=1;i<n;i++){ temp=999999; for(j=1;j<=n;j++){ if(!visted[j]&&lowest[j]<temp){ temp=lowest[j]; step=j; } } visted[step]=1; sum+=temp; for(int k=1;k<=n;k++){ if(!visted[k]&&num[step][k]<lowest[k]){ lowest[k]=num[step][k]; } } } cout<<sum<<endl; } return 0;}
上一篇:ddos常见攻击报文

下一篇:Linux使用记录1

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表