题目名称 | 1109. [福州培训2010] 修复公路 |
---|---|
输入输出 | roada.in/out |
难度等级 | ★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 10 |
题目来源 | Makazeu 于2012-10-07加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:174, 提交:401, 通过率:43.39% | ||||
+1s | 100 | 0.067 s | 0.72 MiB | C++ |
L_in | 100 | 0.101 s | 2.62 MiB | C++ |
Arrow | 100 | 0.113 s | 7.42 MiB | C++ |
syzhaoss | 100 | 0.121 s | 2.77 MiB | C++ |
┭┮﹏┭┮ | 100 | 0.125 s | 3.44 MiB | C++ |
_Itachi | 100 | 0.133 s | 1.46 MiB | C++ |
Pine | 100 | 0.135 s | 0.92 MiB | C++ |
锝镆氪锂铽 | 100 | 0.137 s | 7.40 MiB | C++ |
ESAzl | 100 | 0.138 s | 3.36 MiB | C++ |
+1s | 100 | 0.139 s | 1.44 MiB | C++ |
本题关联比赛 | |||
暑期小训练题 |
关于 修复公路 的近10条评论(全部评论) | ||||
---|---|---|---|---|
把路按时间排序,加权size[i]表示 i 所属的并查集的个数 按顺序依次合并每条路 每次合并完判断当前并查集的size是否达到n
| ||||
| ||||
| ||||
十五分钟搞定,复习kruscal
| ||||
prim也能过的说!!!
サイタマ
2017-11-13 15:38
13楼
| ||||
并查集的基础练习
| ||||
看错题。。
| ||||
最小生成树的最大边一定是所有生成树中最小的。
因为kruskal算法保证在取到这条边之前构不成生成树
dateri
2016-08-15 22:56
10楼
| ||||
#include<iostream>
#include<cstdio> #include<cstring> using namespace std; const int maxn=1000; struct Node{ int from,to,cost; }a[100001]; bool comp(const Node &a,const Node &b){ return a.cost<b.cost; } int n,m,root[1001]; void Kruskal(); int Findroot(int); int main(){ cin>>n>>m; for(int i=1;i<=m;i++){ int x,y,z;cin>>x>>y>>z; a[i].from=x;a[i].to=t;a[i].cost=z; } Kruskal(); return 0; } void Kruskal(){ int ans=0,cnt=0; for(int i=1;i<=n;i++){ root[i]=i; } sort(a+1,a+m+1,comp); for(int i=1;i<=m;i++){ int x=a[i].from,y=a[i].to; int rx=Findroot(x),ry=Findroot(y); if(rx==ry) continue; else{ root[rx]=ry;cnt++; if(a[i].cost>ans) ans=a[i].cost; } if(cnt==n-1) break; } if } int Findroot(int x){ if(x!=root[x]){ root[x]=Findroot(root[x]); } return root[x]; }
Hzoi_Yniverse
2016-02-26 11:11
9楼
| ||||
用Kruskal求最小生成树即可
|
A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。
给出A地区的村庄数N,和公路数M,公路是双向的。并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修完这条公路。问最早什么时候任意两个村庄能够通车,即最早什么时候任意两条村庄都存在至少一条修复完成的道路(可以由多条公路连成一条道路)
第1行两个正整数N,M(N<=1000,M<=100000)
下面M行,每行3个正整数x, y, t,告诉你这条公路连着x,y两个村庄,在时间t时能修复完成这条公路。(x<=N,y<=N,t<=100000)
如果全部公路修复完毕仍然存在两个村庄无法通车,则输出-1,否则输出最早什么时候任意两个村庄能够通车。
4 4 1 2 6 1 3 4 1 4 5 4 2 3
5
福州NOIP2010培训 Day5