最小生成树kruscal算法

#include<iostream>
#include<algorithm>
#include<cstring>
#define maxn 10005
using namespace std;
struct stu
{
int x,y;
int t;
};
stu mapp[maxn];
int f[1005];
int n,m,k,sum,flag;
bool cmp(stu x,stu y)
{
return x.t<y.t;
}
int dfs(int x)
{
if(f[x]!=x) f[x]=dfs(f[x]);
return f[x];
}
void build(int x)
{
if(dfs(mapp[x].x)!=dfs(mapp[x].y))
{
f[dfs(mapp[x].x)]=dfs(mapp[x].y);
sum+=mapp[x].t;
}
}
int solve()
{
int re=0;
for(int i=1;i<=n;i++)
{
if(f[i]==i) re++;
}
if(re==k) return 1;
else return 0;
}
int main()
{
while(cin>>n>>m>>k)
{
for(int i=0;i<1005;i++) f[i]=i;
sum=0;
flag=0;
for(int i=0;i<m;i++) cin>>mapp[i].x>>mapp[i].y>>mapp[i].t;
sort(mapp,mapp+m,cmp);
for(int i=0;i<m;i++)
{
build(i);
if(solve())
{
flag=1;
cout<<sum<<endl;
break;
}
}
if(!flag) cout<<"No Answer"<<endl;
}
return 0;
}

最新文章

  1. TabHost的使用
  2. FreeBSD应该装gnome3做桌面
  3. Spring学习 Ioc篇(二 )
  4. 在java项目中使用log4j的实例
  5. SlickGrid example 1: 最简单的例子和用法
  6. 代码规范-IAR设置
  7. Linux设备驱动中断机制
  8. java.lang.NoSuchMethodError: com.google.common.collect.Maps.newConcurrentMap()Ljava/util/concurrent/Concurren‌​tMap;
  9. 昨天上架出现问题,you binary is not optimized for iphone5.。。。。
  10. java异常的一些小知识
  11. 如何进行系统配置 ——了解DOS下的内存
  12. 螺旋打印2D数组
  13. James Munkres Topology: Theorem 20.4
  14. 《python for data analysis》第八章,绘图与可视化
  15. 【转】说说MySQL中的Redo log Undo log都在干啥
  16. 查看Windows版本号
  17. api日常总结
  18. c#加&quot;\n\r&quot;不换行,变成字符串
  19. BZOJ4556:[TJOI\HEOI2016]字符串(后缀数组,主席树,二分,ST表)
  20. SQL基础用法(实例一)

热门文章

  1. Java UML描述
  2. OpenStack_Swift源代码分析——ObjectReplicator源代码分析(2)
  3. Redis11种Web应用场景
  4. Lichee(两) 在sun4i_crane该平台下编译
  5. java名词,关键字
  6. testing and SQA_动态白盒測试
  7. Xamarin C# Android for Visual Studio 平台安装
  8. c# 通过解析mp3规范命名并上传服务器
  9. osgi实战学习之路:3. osgi分层概念及相互合作demo
  10. Windows Phone开发(10):常用控件(上)