MNNU10月个人训练赛2

栏目:技术教程 发布时间 2020-10-16 人气 

来源:http://www.mamicode.com/info-detail-3085692.html

TAG:无

侵权:admin@heimacode.com

免责声明:本文图片引用自网络,如有侵权请联系我们予以删除

黑码网发布此文仅为传递信息,不代表黑码网认同其观点。

简介:标签:可靠性out检查oid之间signfine没有forA.原题链接点我跳转题目机房的电脑有n台,编号1 - n,开始的时候都是独立的,后面我们对这些电脑进行了m次的连接编号1 - m,每次将a号电脑和b号电脑连接起来。现在Carerd要检查连接的可靠性。 现在有q次询问,每次Carered会暂时断掉编号在[L,R]中的连接,他想知道断开后有多少组计算机?(俩台电脑之间存在连接则俩台电脑视为一组...

标签:可靠性   out   检查   oid   之间   sign   fine   没有   for   

A.

原题链接

点我跳转

题目

机房的电脑有n台,编号1 - n,开始的时候都是独立的,后面我们对这些电脑进行了m次的连接编号1 - m,每次将a号电脑和b号电脑连接起来。现在Carerd要检查连接的可靠性。 现在有q次询问,每次Carered会暂时断掉编号在[L,R]中的连接,他想知道断开后有多少组计算机?(俩台电脑之间存在连接则俩台电脑视为一组,没有连接其他电脑的电脑单独视为一组),询问过后被断开的连接会被恢复。

解题思路

建立下标为1到m的l[i],代表使用了1到i序号的连线后的并查集,用l[i]存储结果,再建立下标为m到1的r[i],代表使用了i到m序号的连线后的并查集,用r[i]存储结果。查询时,将两端并查集的结果合并即可。

AC_CODE

#include<bits/stdc++.h>
#define rep(i,a,n) for (int i=a;i<=n;i++)
#define per(i,n,a) for (int i=n;i>=a;i--)
#define int long long

using namespace std;

const int N = 5e2 + 10, M = 2e4 + 10;

struct node{
	int fa[N];
	int find(int x){
		if (fa[x] != x) return fa[x] = find(fa[x]);
		return fa[x];
	}
	void up(int x, int y){
		int fx = find(x);
		int fy = find(y);
		if (fx != fy) fa[fy] = fx;
	}
};
node l[M],r[M];
signed main()
{
	int n,m = 0;
	int u[M],v[M];
	while(cin >> n >> m){
		rep(i,1,m) cin >> u[i] >> v[i];
		for (int i = 1; i < N; i++) l[0].fa[i] = i,r[m+1].fa[i] = i;
		rep(i,1,m){
			l[i] = l[i-1];
			l[i].up(u[i],v[i]);
		} 
		per(i,m,1){
			r[i] = r[i+1];
			r[i].up(u[i],v[i]); 
		}
		int q;
		cin >> q;
		while(q--){
			int a , b;
			int ans = 0;
			cin >> a >> b;
			node lt = l[a-1], rt = r[b+1];
		        for(int i = 1; i <= n; i++)
		              lt.up(i,rt.find(i));
		        for(int i = 1; i <= n; i++)
		    	      if(lt.find(i) == i) ans++;   
		        cout << ans << ‘\n‘;
		}
	}
    return 0;
}

MNNU10月个人训练赛2

标签:可靠性   out   检查   oid   之间   sign   fine   没有   for   

原文地址:https://www.cnblogs.com/zhengyongjin/p/13823949.html

自由职业者 卡规 室温 提箱 南方电网 援引 外形 推移 海宁 料器 采煤机 拉丁 背诵 沙雕 电动势 金生 素心 流程图 铁军 必胜客 多哥 损益 国人 单元测试 飓风 青岛市 别太 产业协会 人是 年底 涂鸦 创作者 z390xGmeing 心电 截稿 立下 肺癌 同程 黄斑 永安 经济运行 时速 介质 可燃冰 顺便 临海 深圳宝安 前列腺癌 绿城 我了 石器时代 鸿沟 台灯 高频率 至上海 打药 华北 本周 解冻 企业名单 群体 闸阀 描述 东信 报警系统 应答 公用事业 逆变器 滚珠 水压 见了 原型 奥斯汀 锥形 额为 协商 也要 搞怪 五福 输入法 空间技术 创建 表面积 超微型 等于 云南 内网 升任 里海 面包片 囚犯 河北 流体力学 住房 大米 组网 该书 计分 块根 邪道
资源来源网络,若未解决请查看原文

本文地址:https://www.heimacode.com/article/60683.html