IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Codeforces-738 Mocha and Diana (Easy Version) -> 正文阅读

[开发测试]Codeforces-738 Mocha and Diana (Easy Version)

题目大意:给定两个森林,在其中一个图中加边的同时另一个图也会加上相应的边,边不允许重复,求最大加边数量并输出加边的起点与终点

1.可以用两个并查集来存储每个图的集合关系

2.数据范围 n < 1e3 可以暴力 n 方枚举

3.枚举从1~n每个点对(i,j),如果在两个并查集中同时满足find(i) != find(j),那么可以将答案++并记录在答案中(贪心?)

#include<bits/stdc++.h>
using namespace std;
#define debug cout<<"*"<<endl
const int maxn = 1e5 + 8;
int fa1[maxn];
int fa2[maxn];
int n, m1, m2;
struct node
{
	int u, v;
};
queue<node> q;
void init()
{
	for (int i = 1; i <= n; i++)
	{
		fa1[i] = i;
		fa2[i] = i;
	}
}
int find1(int x)
{
	return x == fa1[x] ? x : fa1[x] = find1(fa1[x]);
}
int find2(int x)
{
	return x == fa2[x] ? x : fa2[x] = find2(fa2[x]);
}
void Union1(int u, int v)
{
	int f1 = find1(u);
	int f2 = find1(v);
	if (f1 != f2)
		fa1[f1] = f2;
}
void Union2(int u, int v)
{
	int f1 = find2(u);
	int f2 = find2(v);
	if(f1 != f2)
		fa2[f1] = f2;
}
int main()
{
	int cnt = 0;
	cin >> n >> m1 >> m2;
	init();
	for (int i = 1; i <= m1; i++)
	{
		int u, v;
		cin >> u >> v;
		Union1(u, v);
	}
	for (int i = 1; i <= m2; i++)
	{
		int u, v;
		cin >> u >> v;
		Union2(u, v);
	}
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j < i; j++)
		{
			int f1 = find1(i);
			int f2 = find1(j);
			int ff1 = find2(i);
			int ff2 = find2(j);
			if (f1 != f2 && ff1 != ff2)
			{
				cnt++;
				q.push({ i,j });
				Union1(i, j);
				Union2(i, j);
			}
		}
	}
	cout << cnt << endl;
	while (!q.empty())
	{
		cout << q.front().u << " " << q.front().v << endl;
		q.pop();
	}
	return 0;
}

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:41:40  更:2021-08-17 15:42:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 23:16:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码