vijos 1234 口袋的天空
2024-09-12 21:49:31
最小生成树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;
}
最新文章
- TabHost的使用
- FreeBSD应该装gnome3做桌面
- Spring学习 Ioc篇(二 )
- 在java项目中使用log4j的实例
- SlickGrid example 1: 最简单的例子和用法
- 代码规范-IAR设置
- Linux设备驱动中断机制
- java.lang.NoSuchMethodError: com.google.common.collect.Maps.newConcurrentMap()Ljava/util/concurrent/Concurren​tMap;
- 昨天上架出现问题,you binary is not optimized for iphone5.。。。。
- java异常的一些小知识
- 如何进行系统配置 ——了解DOS下的内存
- 螺旋打印2D数组
- James Munkres Topology: Theorem 20.4
- 《python for data analysis》第八章,绘图与可视化
- 【转】说说MySQL中的Redo log Undo log都在干啥
- 查看Windows版本号
- api日常总结
- c#加";\n\r";不换行,变成字符串
- BZOJ4556:[TJOI\HEOI2016]字符串(后缀数组,主席树,二分,ST表)
- SQL基础用法(实例一)
热门文章
- Java UML描述
- OpenStack_Swift源代码分析——ObjectReplicator源代码分析(2)
- Redis11种Web应用场景
- Lichee(两) 在sun4i_crane该平台下编译
- java名词,关键字
- testing and SQA_动态白盒測试
- Xamarin C# Android for Visual Studio 平台安装
- c# 通过解析mp3规范命名并上传服务器
- osgi实战学习之路:3. osgi分层概念及相互合作demo
- Windows Phone开发(10):常用控件(上)