poj 2377 Bad Cowtractors
来源:互联网 发布:杭州酱鸭哪家最好 知乎 编辑:程序博客网 时间:2024/04/29 09:40
Memory: 4104KTime: 63MSLanguage: C++Result: Accepted
求最大生成树,直接prim.
#include<stdio.h>
#define INT_MAX -10000000
const int MAXN=1001;
int arr[MAXN][MAXN],total;
int used[MAXN],dis[MAXN];
int flag;
//最大生成树
void prim(int n)
{
int v,max,k;
int i,j;
for(i=1;i<=n;i++) //先默认第一个为待选节点
{
used[i]=0;
dis[i]=arr[1][i];
}
used[1]=1;
for(k=1;k<=n;k++)
{
max=INT_MAX;
v=0;
for(i=1;i<=n;i++)
if(!used[i] && dis[i]>max) //在待选节点中选出最大
{
max=dis[i];
v=i;
}
if(v==0)
break;
total=total+max;
used[v]=1;
for(j =1;j<=n;j++)
if(!used[j] && dis[j]<arr[v][j])//新引入的顶点到其他顶点的边值是否大于原来的边值
dis[j]=arr[v][j];
}
if(k<n)//不连通
printf("-1\n");
else
printf("%d\n",total);
}
int main()
{
int n,q,i,j,a,b,c;
while(scanf("%d",&n)==1)
{
flag=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
arr[i][j]=INT_MAX;
total=0;
scanf("%d",&q);
for( i=1;i<=q;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(c>arr[a][b])
arr[a][b]=arr[b][a]=c;
}
prim(n);
}
return 0;
}
- poj 2377 Bad Cowtractors
- poj 2377 Bad Cowtractors
- poj 2377 Bad Cowtractors
- POJ 2377 Bad Cowtractors
- POJ 2377 Bad Cowtractors
- POJ-2377-Bad Cowtractors
- POJ 2377 Bad Cowtractors
- poj 2377 Bad Cowtractors
- POJ 2377 Bad Cowtractors
- POJ 2377 Bad Cowtractors
- Bad Cowtractors.(POJ-2377)
- poj 2377 Bad Cowtractors
- POJ 2377 Bad Cowtractors
- poj 2377 Bad Cowtractors
- 【POJ 2377 Bad Cowtractors】
- POJ 2377 Bad Cowtractors
- poj 2377 Bad Cowtractors
- poj 2377Bad Cowtractors
- 创建a,b两个数组,元素个数由用户分别输入,元素的值由随机数生成,最大值不超过20。
- C#遍历SQL Server数据库中的表,读出表名
- 据说看完这22个故事的人,30岁前都成了亿万富翁
- C语言文件流操作函数大全
- 虚拟机安装中文Fedora 14和C/C++IDE开发环境
- poj 2377 Bad Cowtractors
- C++的部分编程规范
- Eclipse 常用快捷键
- 在QT4中处理windows消息
- 嵌入式学习
- shell 参数介绍
- Android应用程序需不需要手动退出?
- poj2135
- Inline XBRL经得到越来越多的应用