hdu4496 D-City 并查集

calibre QRC提取寄生参数 typical将上面的文件QCI_flow里面的文件 在Cp 到当前 ,其实应该是某几个文件,但是我给忘记了 就全cp过来了 ,无影响,不过也希望大佬指正。 阅读详情

D-City

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 3933    Accepted Submission(s): 1417


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 destroy all the D-lines. The mayor of D-city wants to know how many connected blocks of D-city left after Luxer destroying the first K D-lines in the input. 
Two points are in the same connected blocks if and only if they connect to each other directly or indirectly.
 

Input
First line of the input contains two integers N and M. 
Then following M lines each containing 2 space-separated integers u and v, which denotes an D-line. 
Constraints: 
0 < N <= 10000 
0 < M <= 100000 
0 <= u, v < N. 
 

Output
Output M lines, the ith line is the answer after deleting the first i edges in the input.
 

Sample Input
5 10 0 1 1 2 1 3 1 4 0 2 2 3 0 4 0 3 3 4 2 4
 

Sample Output
1 1 1 2 2 2 2 3 4 5
Hint
The graph given in sample input is a complete graph, that each pair of vertex has an edge connecting them, so there's only 1 connected block at first. The first 3 lines of output are 1s because after deleting the first 3 edges of the graph, all vertexes still connected together. But after deleting the first 4 edges of the graph, vertex 1 will be disconnected with other vertex, and it became an independent connected block. Continue deleting edges the disconnected blocks increased and finally it will became the number of vertex, so the last output should always be N.

逆向看,原来有t个连通分支,然后不断地往里面加边,如果边的两个端点原来不在同一个连通分支里面,那么把它们两个的连通分支合为一个,且t = t - 1,如果原来就在同一个连通分支里面,对t不操作,用并查集来判断是否在同一个连通分支里面以及合并操作,用一个数组记录t的值用于最后输出,注意逆向加边的时候,最后会多个t = 1,最后要去掉


#include <cstdio>
#include <cstring>
#include <iostream>
#include <vector>
#include <set>

using namespace std;

const int maxn = 10005, maxm = 100005;
int T, n, m;
int f[maxn], ans[maxm], len;

struct Edge {
	int u, v;
	Edge() {}
	Edge(int u, int v) : u(u), v(v) {}
}edges[maxm];

int getf(int x) {
	return x == f[x] ? x : f[x] = getf(f[x]);
}

void Merge(int x, int y) {
	int u = getf(x), v = getf(y);
	if (u != v) {
		if (u < v) {
			f[v] = u;
		}
		else {
			f[u] = v;
		}
	}
}

int main()
{
	while (~scanf("%d%d", &n, &m)) {
		for (int i = 0; i < n; i++) {
			f[i] = i;
		}
		for (int i = 0; i < m; i++) {
			scanf("%d%d", &edges[i].u, &edges[i].v);
		}
		int t = n;
		ans[0] = n;
		len = 1;
		for (int i = m - 1; i >= 0; i--) {
			int u, v, x, y;
			u = edges[i].u;
			v = edges[i].v;
			x = getf(u);
			y = getf(v);
			if (x != y) {
				t -= 1;
			}
			ans[len++] = t;
			Merge(u, v);
		}
		for (int i = len - 2; i >= 0; i--) {
			printf("%d\n", ans[i]);
		}
	}
	return 0;
}




07 Zabbix 微信告警 Zabbix 微信告警 1.注册企业微信 企业微信注册地址:https://work.weixin.qq.com 2.进入企业微信后台管理 2.1 添加微信成员 2.2创建应用 2.3 获取四项数据 (1)AgentID (2) Secret (3) 企业ID (4)部门ID 3.Zabbix Server配置 3.1确认脚本目录 # grep alertscripts /etc/zabbix/zabbix_server.... 阅读详情

相关推荐

Windows 10下用vcpkg一键搞定libcurl开发环境(Code::Blocks 20.03配置指南)

本文详细介绍了在Windows 10系统下使用vcpkg工具快速配置libcurl开发环境的完整指南,特别针对Code::Blocks 20.03 IDE进行优化设置。通过vcpkg自动化管理依赖项,简化libcurl的安装与配置过程,帮助开发者高效搭建网络通信功能开发环境,并提供了常见问题解决方案和实际项目中的最佳实践。

weixin_28040125的博客 249

hdu 4496 D-City(并查集)

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

不慌不忙、不急不躁 1359

Vue3+codemirror6实现公式(规则)编辑器

vue3+codemirror6+ts实现公式编辑器,可以插入标签、公式,也有补全提示

小阮的笔记本 5043

hdu 4496 D-City(并查集)

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

854

Ubuntu的初步环境配置(VMware)

4.屏幕显示不全解决完后,在试用Ubuntu里面,直接双击“安装Ubuntu 20.04.6 LTS”。如果不存在“屏幕显示不全”的问题,直接点击安装即可,大致安装步骤与以下步骤类似。15.点击现在重启,重启成功后,会出现“清除安装介质”的问题。19.此时点开火狐,可以上网,但只可输入英文,不可以输入中文,具体解决方法见3.2。3.进入安装界面,此时可能会出现“屏幕显示不全”的问题,具体解决方法见3.1。8.选择“正常安装”、“安装Ubuntu时下载更新”,点击继续。最后,点击保留更改,设置成功。

森菌蛙诺的博客 2274

揭秘 Chat Template 如何驱动 AI Agent?以Qwen3为例详解LLM的聊天模板

bos_token: null (没有使用特殊的文档开始符)eos_token<|im_end|>(作为每个对话回合的结束符)pad_token: 对话回合开始<|im_end|>: 对话回合结束非特殊但关键的控制 Token (在词汇表中定义): 包裹模型生成的工具调用请求。: 包裹外部工具返回的执行结果。<think></think>: 包裹模型的内部思考或推理过程。

ljp1919的专栏 1351

HDU 4496 D-City(并查集)

题目链接:HDU 4496 D-City

fobdddf的专栏 1193

ACS运动控制器编程语言

ACS运动控制器采用SPiiPlusLanguage(SPL)作为核心编程语言,该语言基于C语法设计,内置丰富的运动控制指令,支持点位运动、插补等复杂控制。控制器提供专用开发工具SPiiPlusManager和ACSStudio,支持图形化编程与调试。同时兼容TCP/IP、EtherCAT等多种扩展接口,便于与上位机或PLC集成。使用时需注意实时性优先级、轴参数匹配等关键事项。官方文档和示例程序为开发者提供了完善的学习资源。

StevenChen的博客 612

HDU4496 D-City【并查集】

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

逐梦者 413

南 京 农 业 大 学 试 题 纸 附表(rape.csv)是25个油菜材料,测得每个材料的千粒重、亚油酸等的含量. (1) 对物质含量的八个指标作主成分分析,画出碎石图和主成分得分图; (2) 选

(1)请用n1

Mrrunsen的博客 497

手把手教你学simulink(8.2)--simulink的实战案例:信号分析

通过以上步骤,你已经成功使用 Simulink 对信号进行了频谱分析和时域分析,提取了信号的有用信息。这个案例展示了如何创建 Simulink 模型、添加和连接模块、设置仿真参数、运行仿真以及分析结果。希望这个案例能帮助你更好地理解和使用 Simulink 进行信号分析。

MHD0815的博客 1123

HDU - 4496 D-City(并查集)

HDU - 4496 D-City #include<iostream> #include<cstring> using namespace std; const int N = 1000010; struct note { int a,b; }p[N]; int f[N],ans[N]; int find(int x) { if(x==f[x]) return x; else return f[x]=find(f[x]); } int main() { int n,m;

00后的博客 143

【毕业设计】基于雷达与深度学习的摔倒检测——雷达数据集的建立

运动物体的微多普勒效应为人体动作识别提供了可能,基于雷达的居家检测具有良好的隐私保护性,且不易受环境因素影响(如光照、温度等),近年来已受到国内外学者的广泛关注。基于雷达与深度学习的摔倒检测使用自建的雷达数据集进行人体摔倒检测的研究。雷达数据集的建立分为雷达数据采集和雷达数据处理两部分工作。

洋洋Young的博客 3403

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

hdu4496 D-City 并查集

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

kyoma的博客 467

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

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...

独钓门前月 386

HDU-4496 D-City (并查集)

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

idealism_xxm的专栏 415

【并查集】HDU 4496 D-City

HDU 4496 D-City                                                                                          D-CityTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total ...

荷叶田田 384

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的博客 354

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

传送门:hdu 4496题意:给你n个点和m条边,依次连接这m条边。然后按照输入顺序删除每一条边,问你每次删掉一条边以后的图中的联通块个数。思路:倒序加边,从一条边都不加到加入m-1条边(因为第一个输出的是删掉第一条边后的结果,所以不加入第一条边)。一条边都不加的时候联通块个数为n,即点的个数。每加入一条边判断这两个点是否拥有同一个父节点,如果不是说明他们在两个不同的联通块中,可以将他们合并,并且...

Stupid_Turtle的博客 495

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

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

hdu 4496 D-City 并查集

#include <stdio.h> #include <string.h> #define maxn 10050 int n,m; int p[maxn],x[maxn*10],y[maxn*10]; int find(int x) { if(p[x]==x) return x; else return p[x]=find(p[x]); }...

amily05200的博客 138

HDU 4496 D-CITY【并查集】

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4496 参看资料:https://blog.youkuaiyun.com/u013480600/article/details/18278857 题目大意:        开始时给定一个连接好的图,按连接时的边的顺序,再将每条边拆去,问每拆去一条边剩余多少连通块?      【看不明白就原题链接】 解题思...

二喵君的博客 246
上一篇: hdu4499 Cannon DFS
下一篇: hdu4493 Tutor 小数进位
Daemoonn
博客等级 码龄11年 42粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值