Toggle navigation
C语言网
教程
博客
团队
训练
训练
题库
题集
状态
排名
比赛
比赛
标准
自主
考试
网课
AI助手
AI助手
代码解释
语言转换
编程助手
dzm
私信TA
用户名:17160200112
访问量:30628
签 名:
等 级
P5
排 名
68
经 验
9903
参赛次数
0
文章发表
172
年 龄
0
在职情况
学生
学 校
大连东软信息学院
专 业
电子信息工程
自我简介:
TA的其他文章
蓝桥杯2015年第六届真题-打印大X-题解(C++代码)
浏览:
244
蓝桥杯2018年第九届真题-次数差-题解(C++代码)
浏览:
197
蓝桥杯2018年第九届真题-等腰三角形-题解(C++代码)
浏览:
781
你可能喜欢
汽水瓶 (C语言代码)怎么答案错误?????
浏览:
794
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)
浏览:
594
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)
浏览:
602
点我有惊喜!你懂得!
浏览:
1218
C语言训练-最大数问题 (C语言代码).........关于-1
浏览:
742
蓝桥杯2017年第八届真题-发现环-题解(C++代码)
作者:
dzm
发表时间:2020-07-06 23:46:46
浏览:251 | 评论:0
原题链接:
蓝桥杯2017年第八届真题-发现环
``` #include
#include
#include
#include
using namespace std; const int N=100005; vector
g[N]; set
res; int vis[N]; int n; int parent[N]; int Rank[N]; //用于并查集的优化 void init() { for(int i=0;i<=n;i++) { parent[i]=i; Rank[i]=1; } } int find(int x) { int x_root=x; while(x_root!=parent[x_root]) x_root = parent[x_root]; return x_root; } int Union(int a, int b) { int a_root = find(a); int b_root = find(b); if(a_root!=b_root) { // 38-47行这样做可以就行优化,保证小树并到大树里。 // parent[b_root]=a_root; 单独用这行取代38-47行的话,查找时间更长很多。 if(Rank[a_root]>Rank[b_root]) parent[b_root]=a_root; else if(Rank[a_root]
::iterator it; for(it=res.begin();it!=res.end();it++) cout<<*it<<" "; exit(0); } for(int i=0;i
>n; init(); int start,end; for(int i=0;i
>a>>b; g[a].push_back(b); g[b].push_back(a); if(Union(a,b)==0) { start=a; end=b; } } dfs(start,end); return 0; } ```
0.0分
0 人评分
分享
收藏
C语言网推出会员服务,提供C/C++/算法/Python等多套视频学练课程+源码资源社群答疑+私活推荐等资源,享受丰富的技术学习到变现的乐趣,
以含金量和学习效果勇敢挑战同类辅导
! 点击了解开通
评论区
«
»
提交
精彩推荐
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)
浏览:
532
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)
浏览:
617
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)
浏览:
544
矩阵转置 (C语言代码)
浏览:
1522
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)
浏览:
564
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C++代码)(手动优化一下计算)
浏览:
1275
printf基础练习2 (C语言代码)
浏览:
941
简单的a+b (C语言代码)
浏览:
573
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)
浏览:
660
【计算两点间的距离】 (C语言代码)
浏览:
1473
有问题
,
问问AI
代码解释
语言转换
编程助手