HDU 1232 畅通工程(最小生成树+并查集)
畅通工程
Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 59 Accepted Submission(s) : 37
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
Input
行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。为简单起见,村庄从1到M编号。当N为0时,全部输入结束,相应的结果不要输出。
Output
Sample Input
3 3
1 2 1
1 3 2
2 3 4
1 3
2 3 2
0 100
Sample Output
3
?
#include <iostream>
#include <queue>
using namespace std; int n,m,i,flag;
int sum;
int team[]; struct node
{
int x,y,w;
node(int a,int b,int c){x=a;y=b;w=c;}
};
struct cmp
{
bool operator()(node a,node b)
{
return a.w>b.w;
}
}; int findteam(int k)
{
if (team[k]!=k)
{
team[k]=findteam(team[k]);
return team[k];
} else return k;
}
int main()
{
while (cin>>n>>m&&n)
{ for(int i=;i<=m;i++) team[i]=i;
priority_queue<node,vector<node>,cmp> path;
for(int i=;i<n;i++)
{
int x,y,w;
cin>>x>>y>>w;
path.push(node(x,y,w));
}
sum=;
flag=;
while(!path.empty())
{
node p=path.top();
path.pop();
int fx=findteam(p.x);
int fy=findteam(p.y);
if (fx!=fy)
{
team[fx]=fy;
sum+=p.w;
}
int k=findteam();
for(i=;i<=m;i++)
if (k!=findteam(team[i])) break;
if (i>m) {flag=; break;}
}
if (flag) cout<<sum<<endl;
else cout<<"?"<<endl;
}
return ;
}
HDU 1232 畅通工程(最小生成树+并查集)的更多相关文章
- hdu 1232 畅通工程(并查集算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 畅通工程 Time Limit: 4000/2000 MS (Java/Others) M ...
- HDU 1232 畅通工程 (并查集)
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可). ...
- 题解报告:hdu 1232 畅通工程(并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了 ...
- HDU - 1232 畅通工程【并查集】
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- HDU 1232 畅通工程 (并查集,常规)
题意:中文题目 思路:按照HDU1213来做.http://www.cnblogs.com/xcw0754/p/4607813.html #include <bits/stdc++.h> ...
- hdu 1863 畅通工程(Kruskal+并查集)
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 1863 畅通工程 (并查集)
原题链接:畅通工程 题目分析:典型的并查集模版题,这里就不详细叙述了.对算法本身不太了解的可以参考这篇文章:并查集算法详解 代码如下: #include <iostream> #inclu ...
- 还是畅通工程(最小生成树 并查集 Prim Kruskal)
Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只 ...
- HDU 1232 畅通工程(道路连接)(裸并查集)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1232 畅通工程 Time Limit: 4000/2000 MS (Java/Others) ...
- HDU1232 畅通工程---(经典并查集应用)
http://acm.hdu.edu.cn/showproblem.php?pid=1232 畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory ...
随机推荐
- winform控件背景透明问题(label..等)
在使用winform写界面的时候,要想label这种控件实现对背景色透明,并且也懒得每次拖动一次控件都要在后台写一遍label1.Parent=PictureBox1 那么下面方法就介绍了比较简单便捷 ...
- 关于oracle数据库(2)
数据备份.数据删除.数据还原 连接数据库,查看scott用户下面的所有表 数据备份(数据导出)要输入导出文件路径和文件名(文件扩展名可输入也可以不输入) 导出成功后,可以在上面输入的文件路径下面看到导 ...
- 恢复SQLSERVER被误删除的数据(转)
恢复SQLSERVER被误删除的数据 曾经想实现Log Explorer for SQL Server的功能,利用ldf里面的日志来还原误删除的数据 这里有一篇文章做到了,不过似乎不是所有的数据类型都 ...
- SqlSever 查询基本
查询语句: SQL sever 查询语句: 1.查询所有字段: select * from UserInfo 2.条件筛选 (如查询UserInfo中的UserName) select UserNam ...
- jQuery中的方法
jQuery中的方法来操作HTML标签中的属性 attr(name) 获取当前对象的指定的属性的值 attr(key,value) 给当前对象设置属性值 attr(properties) 一 ...
- over 分析函数之 lag() lead()
/*语法*/ lag(exp_str,offset,defval) over() 取前 Lead(exp_str,offset,defval) over() 取后 --exp_str要取的列 -- ...
- unknow type name 'off64_t'
或者 错误"error: 'off64_t' does not name a type" MinGW的bug,使用-std=c++11, 有可能出现, 修改{MinGW dir} ...
- IIS:错误: 无法提交配置更改,因为文件已在磁盘上更改
文件名: \\?\C:\Windows\system32\inetsrv\config\applicationHost.config 错误: 无法提交配置更改,因为文件已在磁盘上更改 通过 Micro ...
- apk的重签名
1. 生成Android APK包签名证书 1). 在doc中切换到jdk的bin目录 cd C:\Program Files\Java\jdk1.6.0_18\bin 2). ...
- QTP使用小技巧
1.创建action template. 当希望在每一个新建action时都增加一些头部说明,比如作者.创建日期.说明等,用action template 来实现最简单快捷. ...