浙大计算机研究生复试上机考试

编程入门 行业动态 更新时间:2024-10-17 21:23:10

浙大计算机研究生<a href=https://www.elefans.com/category/jswz/34/1769885.html style=复试上机考试"/>

浙大计算机研究生复试上机考试

文章目录

  • 并查集知识
  • 畅通工程
    • 实现代码
    • 样例运行结果

并查集知识










畅通工程

题目原地址

某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?


输入样例:

4 2
1 3
4 3
3 3
1 2
1 3
2 3
5 2
1 2
3 5
999 0
0

输出样例

1
0
2
998

实现代码

#include<stdio.h>
#define N 1010
int father[N];int Find(int x) {if(x != father[x]) {father[x] = Find(father[x]);}return father[x];
}void Union(int x, int y) {int a = Find(x);int b = Find(y);if(a != b) {father[a] = b;}
}int main() {while(1) {// n为城镇数, m为道路数int n, m;int ans = 0;scanf("%d", &n);if(n == 0) {break;}scanf("%d", &m);int i;for(i = 1; i <= n; i++) {father[i] = i;}int x, y;for(i = 0; i < m; i++) {scanf("%d %d", &x, &y);Union(x, y);}for(i = 1; i <= n; i++) {if(i == Find(i)) {ans++;}}printf("%d\n", ans - 1);}return 0;
}

样例运行结果


之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

更多推荐

浙大计算机研究生复试上机考试

本文发布于:2023-12-05 02:11:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1662745.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:复试   浙大   研究生   计算机   考试

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!