[ luogu ] P111 修理公路
2018-06-17 22:11:24来源:未知 阅读 ()
题目背景
A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。
题目描述
给出A地区的村庄数N,和公路数M,公路是双向的。并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修完这条公路。问最早什么时候任意两个村庄能够通车,即最早什么时候任意两条村庄都存在至少一条修复完成的道路(可以由多条公路连成一条道路)
输入输出格式
输入格式:
第1行两个正整数N,M
下面M行,每行3个正整数x, y, t,告诉你这条公路连着x,y两个村庄,在时间t时能修复完成这条公路。
输出格式:
如果全部公路修复完毕仍然存在两个村庄无法通车,则输出-1,否则输出最早什么时候任意两个村庄能够通车。
输入输出样例
4 4 1 2 6 1 3 4 1 4 5 4 2 3
5
说明
N<=1000,M<=100000
x<=N,y<=N,t<=100000
不知道怎么弄链接,
只好把原题网站放在了评论中= =
详细内容
见下面(本弱打的代码,可能有些多余的东西,不要介意= =)
1 #include<bits/stdc++.h> 2 using namespace std; 3 struct f{int x,y,t;} a[100050]; 4 5 int cmp(f a,f b)//自定义排列结构体,时间由短到长排序 6 { 7 if(a.t!=b.t) 8 return a.t<b.t; 9 else 10 return a.x<b.x; 11 } 12 int n,m; 13 int root[10500],size[10500];//root代表空间,把相互连通的道路编入一个空间里 14 //size代表数量,当一个房间数量与总数相同时,所有道路连通 15 int find(int x) 16 { 17 if(root[x]!=x)//当该道路的空间不属于它本身时,寻找它所属的空间 18 root[x]=find(root[x]); 19 return root[x]; 20 } 21 22 int main() 23 { 24 cin>>n>>m;//n代表村庄总数,m代表指令的数量 25 for(int i=1;i<=m;i++) 26 cin>>a[i].x>>a[i].y>>a[i].t;//输入题目中的两个村庄(x,y)和时间(t) 27 28 sort(a+1,a+1+m,cmp);//上面所写到的排序 29 30 for(int i=1;i<=n;i++) 31 { 32 root[i]=i; 33 size[i]=1; 34 }//初始化定义每个村庄空间属于自己,空间数量为1 35 36 int l=1; 37 while(l<=m)//从第一条指令开始读入 38 { int q,p; 39 q=a[l].x; 40 p=a[l].y; 41 int rq,rp;//rq,rp代表p和q所在的空间 42 rq=find(q);rp=find(p); 43 if(rq!=rp)//当两个村庄空间不同的时候,合并起来,数量集中在一个空间中 44 {root[rq]=root[rp]; 45 size[rp]+=size[rq]; 46 size[rq]=0;//清零,防止出事 47 if(size[rp]==n)//当一个房间数量与总数相同时,所有道路连通 48 {cout<<a[l].t;break;}} 49 if(l==m)//如果满足题意,上面已经退出= = 50 {cout<<-1;break;} 51 l++;} 52 53 return 0; 54 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 【题解】Luogu1739 表达式括号匹配 2020-04-07
- 不一样的LCA——luoguP1852跳跳棋 2019-11-13
- LuoguP3069 【[USACO13JAN]牛的阵容Cow Lineup 2019-10-30
- 题解 Luogu P3959 【宝藏】 2019-09-23
- 洛谷 P1111 修复公路 2019-09-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash