hdu 4496 - D-City (基础并查集)

判断图的连通性 题目描述 给定一个无向图G,写一个程序处理以下两种操作: 1. 删去一条边(u, v) 2. 询问两点u,v 是否连通 输入 输入文件的第一行包含三个整数n, m, q,依次代表图的顶点数、边数、询问的个数。 接下来m 行,每行两个整数u, v,描述图中的一条边(u; v)。接下来q 行,每行三个整数t, u, v,描述一个操作。若t = 1 则操作代表删去边(u; v),否则操作代表询 阅读详情

传送门:hdu 4496


题意:给你n个点和m条边,依次连接这m条边。然后按照输入顺序删除每一条边,问你每次删掉一条边以后的图中的联通块个数。


思路:倒序加边,从一条边都不加到加入m-1条边(因为第一个输出的是删掉第一条边后的结果,所以不加入第一条边)。一条边都不加的时候联通块个数为n,即点的个数。每加入一条边判断这两个点是否拥有同一个父节点,如果不是说明他们在两个不同的联通块中,可以将他们合并,并且联通块个数是加入这条边之前的联通块个数-1;否则说明他们在同一个联通块中,加入这条边不改变联通块个数。


AC代码:

/**********************************************
	Author:		StupidTurtle
	Date:		2018.5.20
	Email:		31601359@stu.zucc.edu.cn
**********************************************/

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

typedef long long ll ;
const int oo = 0x7f7f7f7f ;
const int maxn = 1e4 + 7 ;
const int maxm = 1e5 + 7 ;
const int mod = 1e9 + 7 ;

int pre[maxn] , ans[maxm] ;

int Find ( int x ){
	return x == pre[x] ? pre[x] : pre[x] = Find(pre[x]) ;
}

struct node{
	int u , v ;
};

node p[maxm] ;

int main(void){
	
	int n , m ;
	while ( ~scanf("%d%d",&n,&m ) ){
		for ( int i = 0 ; i < n ; i ++ ){
			pre[i] = i ;
		}
		for ( int i = 0 ; i < m ; i ++ ){
			scanf("%d%d",&p[i].u,&p[i].v );
		}
		ans[m] = n ;
		for ( int i = m - 1 ; i > 0 ; i -- ){
			if ( ans[i+1] == 1 ){
				ans[i] = 1 ;
				continue ;
			}
			int fu = Find(p[i].u) , fv = Find(p[i].v) ;
			if ( fu == fv ){
				ans[i] = ans[i+1] ;
			} else {
				pre[fu] = fv ;
				ans[i] = ans[i+1] - 1 ;
			}
		}
		for ( int i = 1 ; i <= m ; i ++ ){
			printf("%d\n",ans[i] );
		}
	}
	
	return 0 ;
}

别再找在线API了!用C#调用微信电脑版自带的OCR,本地识别又快又准 本文详细介绍了如何利用C#调用微信电脑版内置的OCR引擎实现本地文字识别,解决传统云端API的隐私和网络依赖问题。微信OCR具备高精度中文识别、完全离线运行和零成本接入三大优势,特别适合企业文档电子化处理。通过实战代码演示了核心交互逻辑、批量处理流水线和表格数据提取等高级应用场景。 阅读详情

相关推荐

碳化硅外延层厚度测量:红外干涉光谱与FFT技术详解

薄膜厚度测量是半导体制造中的关键工艺控制环节,其核心原理基于光的干涉现象。当光在薄膜上下界面反射并叠加时,会产生与厚度相关的干涉条纹。通过分析这些条纹,可以非接触、无损地获取薄膜的精确厚度信息。这项技术的核心价值在于实现了对关键工艺参数的在线、快速监控,对于提升器件性能与生产良率至关重要。在第三代半导体,尤其是碳化硅功率器件的制造中,外延层厚度直接决定了器件的击穿电压和导通电阻等核心性能。红外干涉光谱法因其对碳化硅材料在红外波段的良好透过性,成为该领域主流的厚度测量方案。通过快速傅里叶变换(FFT)对采集到

weixin_29032489的博客 308

[bzoj 4424]Cf19E Fairy

给定 n 个点,m 条边的无向图,可以从图中删除一条边,问删除哪些边可以使图变成 一个二分图。 这道题还是不错的。 看到无向图的题目,应该一开始要往dfs树上面想。其实是因为最近吃够教训了 那么根据上面套路,我们先弄出一棵生成树。对于那些非树边,如果x与y之间的点数为偶数,称之为偶边,如果为奇数,就为奇边。 二分图的充要条件是不存在奇环,且点数要在2个或以上(这个出题人好像没卡),所以我们的目...

galiqing的博客 408

企业网络改造必看:如何用华为S5700三层交换机解决多部门隔离通信?

本文详细介绍了如何利用华为S5700三层交换机解决企业多部门网络隔离与通信需求。通过划分VLAN实现逻辑隔离,并配置三层路由实现受控互通,结合ACL进行精细访问控制,构建安全高效的企业网络。文章提供了从拓扑规划、地址分配到核心配置的完整实战指南。

weixin_29260291的博客 261

hdu 4496 并查集 逆向 并查集删边

貌似某大犇说过 正难则反,,, 题目说要对这张图进行删边,然后判断联通块的个数,那么就可以先把所有边都删掉,之后从后往前加边,若加的边两端点不在同一个联通块中, 那么此时联通快个数少一,否则不变 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 5...

weixin_30270561的博客 197

【自动驾驶】控制算法(十)深度解析车辆纵向控制 | Carsim 油门刹车标定表的制作...

写在前面: ???? 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。???? ???? 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 ????感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~文章目录引言一、油门标定原理1.1 油门与速度、加速度的关系1.2 油门控制曲面模型的构建二、油门标定表的制作流程...

qq_35485206的博客 2139

目标检测中的困难样本挖掘:YOLOv5训练效果提升30%的秘诀

本文深入探讨了目标检测中困难样本挖掘的关键技术,特别是如何通过在线困难样本挖掘(OHEM)策略显著提升YOLOv5模型的性能。文章详细解析了困难样本的分类、识别机制及实战配置,并提供了数据标注策略与增强技巧,最终实现模型性能提升30%的突破。

weixin_30379531的博客 402

每次去掉一条边判断是否连通

#include #include #define N 10005 int n,m,Q,l,r,x[N],y[N]; struct DSU{ int f[505],c; int get(int x){return f[x]?f[x]=get(f[x]):x;} void Link(int x,int y){x=get(x),y=get(y); if (x!=y) f[x]=y,c++;} }

durong123123123的专栏 958

Vue - 解决报错 Error: Cannot find module ‘XXX\@vue\cli-service\bin\vue-cli-service.js‘(vue项目编译运行出错,启动失败)

vue报错,Error: Cannot find module ‘@vue\cli-service\bin\vue-cli-service.js‘,vue2项目启动报错,vue3项目运行出错,vue执行npm run serve报错,找不到@vue/cli-service模块,vue项目关于:Error: Cannot find module ‘D:\@vue\cli-service\bin\vue-cli-service.js‘的解决方案,vue项目跑不起来了,Vue项目报错,跑项目报错Cannot fi

🏆 前端领域优质创作者 3115

HDU5631(并查集)

题目大意:n个顶点,n+1条边,问删除几个边之后仍是连通图的方案数有多少? 思路:如果图连通的话,只能删1~2条边,而且题目数据小,所以暴力就好。 #include #include #include #include #include #include using namespace std; int fa[111]; int from[111], to[111]; int n;

phantom_kiddo的博客 693

甲基化生物信息学分析及批次效应校正全流程

本文系统阐述了DNA甲基化数据分析中的批次效应问题及解决方案。甲基化数据(β值和M值)对实验批次差异高度敏感,可能导致假阳性结果。文章详细介绍了批次效应检测方法(PCA可视化、BEclear定量评分)和校正流程,包括数据预处理、参数化(ComBat-met)与非参数化(BEclear)校正方法,并提供了完整的R代码实现。重点解决了β值有界分布与统计模型假设冲突的问题,为甲基化研究的可靠性提供技术保障。

huanghm88的专栏 109

卫朋:IPD流程落地之产品开发验证阶段解读

IPD验证阶段

产品线负责人 1488

HDU4496 D-City【基础并查集】

Problem Description Luxer is a really bad guy. He destroys everything he met.  One day Luxer went to D-city. D-city has N D-points and M D-lines. Each D-line connects exactly two D-points. Luxer will...

独钓门前月 387

C#与天文观测:Celestia模拟星空的奇幻之旅

Celestia就像一艘穿梭在星海中的小飞船,带领我们遨游宇宙。C#则是这艘飞船的智能导航系统,用代码指挥它飞向任何我们向往的星球或星系。首先,下载并安装Celestia,熟悉其基本操作和功能。创建一个星空目标列表,包括不同的恒星、行星和星系。// 示例:定义观察目标列表new SpaceObject("太阳"),new SpaceObject("月球"),new SpaceObject("火星")

java专栏 1456

HDU-4496-D-City(并查集基础)

D-City Problem Description Luxer is a really bad guy. He destroys everything he met. One day Luxer went to D-city. D-city has N D-points and M D-lines. Each D-line connects exactly two D-points. Luxer...

qq_43461168的博客 295

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

hdu 4496 D-City(并查集)

题目链接:hdu 4496 D-City 题目大意:给出一张图,按照给定边的顺序逐个删除,问没删除一条之后的联通块数量。 解题思路:逆向并查集求联通分量,假设一开始各个城市都不连通,然后从最后一条边开始添加,如果新添加的边联通了两个联通块,那么联通分量就要减1,最后在正序输出即可。 #include #include const int N = 10005; c

不慌不忙、不急不躁 1360

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HDU 4496-D-City(并查集)

D-City Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 6470 Accepted Submission(s): 2213 Problem Description Luxer is a really bad guy. He d...

在读NLP硕士 1130

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

HDU 4496 D-City 删边并查集

一、内容 Luxer is a really bad guy. He destroys everything he met. One day Luxer went to D-city. D-city has N D-points and M D-lines. Each D-line connects exactly two D-points. Luxer will destroy all the...

Tizzi的博客 786

HDU4496 D-City并查集逆向推理

D-City Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 3035    Accepted Submission(s): 1074 Problem Description Luxer is a really b

逝水流年轻染尘 653

HDU-4496 D-City (并查集)

感觉做过类似的。。。很快就想到倒着处理,就可以利用并查集写了

idealism_xxm的专栏 415

HDU 4496 D-City 并查集倒排加边

D-CityTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 4344 Accepted Submission(s): 1530Problem Description Luxer is a really bad guy. He de

lixiyi的博客 355

HDU 4496 D-City(并查集)

题目链接:HDU 4496 D-City

fobdddf的专栏 1193

hdu 4496 D-City(并查集)

题目:hdu 4496 D-City 题目大意:n代表n座城市,m代表m条关系。刚开始所有的城市都是连在一起的,这样就是一个联通分量,然后给出m条关系,每条关系x y 代表x y之间有一条通道使两座城市相连,问按顺序去掉这样的通道后,每次去掉一条会变成几个联通分量。 解题思路:这题题目保证最后一定会变成n个联通分量,即这n个城市都是不相连,这样从后往前每一条边的加入可能会改变联

854

hdu-4496-D-City

D-City Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 3838Accepted Submission(s): 1379 Problem Description Luxer is a really bad gu...

141

【并查集】-HDU-4496-D-City

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4496 题目描述:问毁坏K条边后还有几堆? 解题思路: 还是并查集,反过来做就行了,坑的是这题竟然是EOF输入,它又没说! 然后我还是WA了几下,因为不能每次都遍历查有多少堆,那样会超时,像改完的代码里那样用个Num计数就行了。 这种计数方式应该记着点,可能挺有用的、 AC代码: #inc

邂逅黛玛姑娘 960

HDU 4496 D-CITY(并查集)

HDU4496 D-CITY(并查集) 题目描述:给出一个有N(0 输入:第一行是N和M,然后是M行数(X,Y)(0 输出:依次输出所求的连通分量数。 分析:当删除前K条边时图所剩的连通分量数就是N个孤立的点只添加后M-K跳边时,所具有的连通分量数。 所以仅需倒叙插入每条边,分别保存插入边后有的连通分量数在数组内,然后输出数组即可。 AC代码中未加while(scanf("%d%d",

code 1472

HDU4496 D-City【并查集删边】

D-CityProblem Description Luxer is a really bad guy. He destroys everything he met. One day Luxer went to D-city. D-city has N D-points and M D-lines. Each D-line connects exactly two D-points. Luxe

wyjwyl的专栏 465
上一篇: cf div2 #453 ABC(D)
下一篇: 权值线段树、主席树学习
Stupid_Turtle
博客等级 码龄9年 25粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值