HDU 1863-kruskal
来源:互联网 发布:中国知乎 编辑:程序博客网 时间:2024/06/07 01:01
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863
思路:一个简单的最小生成树,用的并查集和kruskal算法来解;
代码:
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
struct node
{
int fo,to,w;
bool operator <(const node &a)const
{
return w<a.w;
}
} E[1009];
int p[1009],n,m;
int cha(int x)
{
if(p[x]==-1)
return x;
return p[x]=cha(p[x]);
}
int kk()
{
int ans=0,cnt=0;
for(int i=0; i<m; i++)
{
int x=cha(E[i].fo);
int y=cha(E[i].to);
if(x!=y)
{
cnt++;
ans+=E[i].w;
p[x]=y;
}
}
if(cnt<n-1)return -1;
return ans;
}
int main()
{
while (scanf("%d",&m)!=-1)
{
scanf("%d",&n);
if(m==0)break;
memset(p,-1,sizeof(p));
for(int i=0;i<m;i++)
{
scanf("%d%d%d",&E[i].fo,&E[i].to,&E[i].w);
}
sort(E,E+m);
int nk=kk();
if(nk==-1)printf("?\n");
else printf("%d\n",nk);
}
}
- hdu 1863 kruskal
- HDU 1863-kruskal
- hdu 1863(prim&kruskal)
- hdu 1863 Kruskal起步
- HDU 1863 畅通工程(Kruskal)
- hdu 1863 畅通工程kruskal算法
- HDU 1863 畅通工程(kruskal算法)
- HDU 1863 畅通工程(Kruskal)
- HDU-#1863 畅通工程(Kruskal & Prim)
- HDU 1863--畅通工程【Prim && kruskal】
- hdu 1863 畅通工程(kruskal)(基础)
- hdu 1863 畅通工程(kruskal算法)
- hdu 1863 畅通工程【kruskal & prim】
- HDU 1863 畅通工程(kruskal)
- hdu 1863 畅通工程 kruskal || prim
- hdu 1863 畅通工程(prim+kruskal)
- HDU:1863 畅通工程(kruskal)
- HDU 1863 畅通工程 (prim + kruskal)
- spark之hadoop2.6环境搭建笔记
- Spring4+Hibernate4+junit4环境搭建
- POJ2387---Til the Cows Come Home
- 编译安装linux内核模块
- LightOJ1021---Painful Bases (状压dp)
- HDU 1863-kruskal
- 数据库以及线程发生死锁的原理及必要条件,如何避免死锁
- linux命令总结(三)
- HDU1083 最大二分匹配
- C++中类的多态与虚函数的使用
- Java程序员的6个级别
- 快速幂取余
- android 布局文件的权重问题
- SqlServer 2012 FileTable 文件表