嗯...

题目链接:https://www.luogu.org/problemnew/show/P1536

思路:

  这道题可以看出是并查集的思想,然后用一个while嵌套一下,输入一条路的两个端点,就将这两个端点合并,表示这两个地方可以互相到达。然后从1到n for 一遍,如果这个点的父亲和它本身相同(即它并没有与其他任何的点并在一起),就将数量+1,注意现在的ans是点的个数,要修的路的个数即为点的个数减一。

AC代码:

 #include<cstdio>
#include<iostream>
#include<algorithm> using namespace std; int f[];
int n, m, x, y; inline int find(int x){
if(x != f[x])
f[x] = find(f[x]);
return f[x];
}//"查 " int main(){
while(true){
int ans = ;
scanf("%d", &n);
if(n == )
return ;//结束
scanf("%d", &m);
for(int i = ; i <= n; i++)
f[i] = i;
for(int i = ; i <= m; i++){
scanf("%d%d", &x, &y);
int r1 = find(x);
int r2 = find(y);
if(r1 != r2){
f[r1] = r2;
}//"并"
}
for(int i = ; i <= n; i++){
if(find(i) == i){//没与任何点并在一起
ans++;//点的个数
}
}
printf("%d\n", ans - );//要修的路的条数
}
return ;
}

AC代码

洛谷 P1536 村村通(并查集)的更多相关文章

  1. 洛谷—— P1536 村村通

    P1536 村村通 题目描述 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府“村村通工程”的目标是使全市任何两个城镇间都可以实现交通(但不一定有直接的道路相连, ...

  2. 洛谷 P1536 村村通

    目录 题目 思路 \(Code\) 题目 P1536 村村通 思路 并查集,一开始连通快的数量为\(n\),输入\(m\)条边时如果该边起点和终点不在同一联通块内就合并并让联通块数量减一,最后输出联通 ...

  3. [洛谷P1536]村村通

    题意:多组数据,当n为0时结束,每组数据表示有n个村子,m条路,求还需要建多少条路,使得所有的村子联通题解:用并查集求出有多少个联通块,然后求解 C++ Code: #include<cstdi ...

  4. bzoj3673 & bzoj3674 & 洛谷P3402 可持久化并查集

    题目:bzoj3673:https://www.lydsy.com/JudgeOnline/problem.php?id=3673 bzoj3674:https://www.lydsy.com/Jud ...

  5. 洛谷 3295 [SCOI2016]萌萌哒——并查集优化连边

    题目:https://www.luogu.org/problemnew/show/P3295 当要连的边形如 “一段区间内都是 i 向 i+L 连边” 的时候,用并查集优化连边. 在连边的时候,如果要 ...

  6. 洛谷P2024 食物链 [NOI2001] 并查集

    正解:并查集 解题报告: 传送门(咕了! 其实没有很难(虽然我是交了三发才过的QAQ 但是一来好久没打并查集了恢复一下智力 二来看着智推里唯一一个蓝就很不爽(,,,虽然做了这题之后又补上了个蓝题QAQ ...

  7. 洛谷P1197 [JSOI2008] 星球大战 [并查集]

    题目传送门 星球大战 题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系. 某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这 ...

  8. 洛谷 P1551 亲戚(并查集模板)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P1551 思路: 很显然地我们会发现,这是一道并查集的模板题,并且是考察了并查集中的”并“和”查“的操 ...

  9. 洛谷P1111修复公路并查集改

    看了他们的题解感觉很震惊,为什么要用kruskal,这题要用到最小生成树吗??? 38行短短的程序就可以了,我觉得学习不是一种套用,套自己学的,而且题解很大一部分都是kruskal. 个人认为自己的程 ...

随机推荐

  1. 关于android 图片加载优化

    android应用对图片处理算是比较频繁的了,尤其是在程序加载大量图片和高分辨率图片时,最容易产生oom异常,下面是个人平时一些省内存加载方法 方法一: public Bitmap decodeFil ...

  2. 【遍历二叉树】12往二叉树中添加层次链表的信息【Populating Next Right Pointers in Each Node II】

    本质上是二叉树的层次遍历,遍历层次的过程当中把next指针加上去. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  3. [原]NYOJ-字符串替换-113

    大学生程序代写 /*http://acm.nyist.net/JudgeOnline/problem.php?pid=113 字符串替换 时间限制:3000 ms  |  内存限制:65535 KB  ...

  4. Qt Create 4.6.2无法自动生成Android Kit

    开发环境: OS,Microsoft Windows [Version 10.0.17134.523] Qt,5.11.1 Qt Creator,4.6.2 JDK,1.8.0_181 Android ...

  5. ffmpeg解码RTSP/TCP视频流H.264(QT界面显示视频画面)

    源码下载地址: http://download.csdn.net/detail/liukang325/9489952 我用的ffmpeg版本为 ffmpeg-2.1.8.tar.bz2 版本低了恐怕有 ...

  6. Agc018_B Sports Festival

    传送门 题目大意 有$n$个人,$m$种运动$(n,m\leq 300)$,每个人对$m$种运动有喜爱度的排名. 请你划分一个$m$种运动的非空集合,使得当每个人参加集合内喜爱度排名最高的运动时,最多 ...

  7. [转]JS的内存泄露处理

    问题: 1.给DOM对象添加的属性是一个对象的引用.范例: var MyObject = {}; document.getElementByIdx_x('myDiv').myProp = MyObje ...

  8. dcos的问题汇总

    . group 'docker' does not exist 需要手工创建docker组,这一步本来应该是在安装docker的时候来完成的,但是采用yum install的方式不行,需要添加一个do ...

  9. Poj 1017 Packets(贪心策略)

    一.题目大意: 一个工厂生产的产品用正方形的包裹打包,包裹有相同的高度h和1*1, 2*2, 3*3, 4*4, 5*5, 6*6的尺寸.这些产品经常以产品同样的高度h和6*6的尺寸包袱包装起来运送给 ...

  10. java 代码。= -=

    package com.da; //toString()方法, //Object类重写... public class ty { private String name; private int ag ...