hdu3371
来源:互联网 发布:租电脑去哪个网站知乎 编辑:程序博客网 时间:2024/05/29 00:32
..//重边问题。。。
//感觉好坑。。。
#include<iostream>#include<stdio.h>using namespace std;const int MAX=999999999;int map[502][502],visit[502],low[502];int n;void prim(){ memset(visit,0,sizeof(visit)); int pos; visit[1]=1; pos=1; int i,j,result=0; for(i=1;i<=n;i++) { low[i]=map[pos][i]; } for(i=1;i<n;i++) { int min=MAX; for(j=1;j<=n;j++) { if(visit[j]==0&&min>low[j]) { min=low[j]; pos=j; } } result+=min; if(result>=MAX) break; visit[pos]=1; for(j=1;j<=n;j++) { if(visit[j]==0&&low[j]>map[pos][j]) low[j]=map[pos][j]; } } if(result>=MAX) printf("-1\n"); else printf("%d\n",result);}int main(){ int t; cin>>t; while(t--) { int m,k; scanf("%d%d%d",&n,&m,&k); int a,b,c; int i,number,number1,j,p; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) map[i][j]=MAX; } while(m--) { scanf("%d%d%d",&a,&b,&c); if(map[a][b]>c)//这个地方其实蛮关键的,刚开始就是因为这个地方不知道,才WA了9次 { map[a][b]=c; map[b][a]=c; } } int b1[501]; for(i=1;i<=k;i++) { cin>>number1; number=number1; j=1; while(number1--) { scanf("%d",&a); b1[j]=a; j++; } for(j=1;j<=number;j++) { for(p=j+1;p<=number;p++) { map[b1[j]][b1[p]]=0; map[b1[p]][b1[j]]=0; } } } prim(); } }
0 0
- hdu3371
- hdu3371
- HDU3371
- HDU3371
- hdu3371
- HDU3371&&POJ2485
- hdu3371 Connect the Cities
- hdu3371一个“ ; ”一个郁闷
- HDU3371--Connect the Cities
- hdu3371 Connect the Cities
- HDU3371 Connect the Cities
- hdu3371: Connect the Cities
- Hdu3371【最小生成树】
- HDU3371--- Connect the Cities
- HDU3371-Connect the Cities
- hdu3371 Connect the Cities
- hdu3371之最小生成树
- HDU3371 Connect the Cities【Kruskal】
- 【KafKa系列】KafKa安装部署
- firefox的bookmark是被保存在哪个目录下?
- java中泛型方法
- 杭电 2176 取(m堆)石子游戏(博弈)
- java程序员在面试时要注意的几个问题
- hdu3371
- Window下分解pfx证书文件转换成pem文件的命令行方法
- 杭电 acm 1032 The 3n + 1 problem
- 「砍」substring() //取指定的索引号之间的字符较小作为起始位置,较大作为结束位置 20140826 ①文本处理
- 20140826 CSS宽度固定
- iOS学习笔记---某个控件出不来的可能
- 项目需求中的三种差异化需求认知
- ffmpeg vp8 编码参数对照
- C++面试