E. Split Into Two Sets(染色法判断二分图)

news2024/11/22 9:08:24

Problem - 1702E - Codeforces

波利卡普最近得到了一组n(数字n-偶数)的骨牌。每块多米诺骨牌包含1到n的两个整数。

他能把所有的骨牌分成两组,使每组骨牌上的数字都不一样吗?每张多米诺骨牌必须正好进入两组中的一组。

例如,如果他有4张多米诺骨牌:{1,4}、{1,3}、{3,2}和{4,2},那么波利卡普就能按要求把它们分成两组。第一组可以包括第一张和第三张骨牌({1,4}和{3,2}),第二组是第二张和第四张({1,3}和{4,2})。

输入
第一行包含一个整数t(1≤t≤104)--测试案例的数量。

接下来是测试用例的描述。

每个测试用例的第一行包含一个偶数整数n(2≤n≤2⋅105)--多米诺骨牌的数量。

接下来的n行包含一对数字ai和bi(1≤ai,bi≤n),描述第i块多米诺骨牌上的数字。

保证所有测试案例的n之和不超过2⋅105。

输出
对每个测试案例打印。

如果有可能将n块多米诺骨牌分成两组,使每组多米诺骨牌上的数字不同,则为YES。
如果不可能,则打印NO。
你可以在任何情况下打印YES和NO(例如,字符串yEs、yes、Yes和YES将被识别为一个肯定的答案)。

例子
inputCopy
6
4
1 2
4 3
2 1
3 4
6
1 2
4 5
1 3
4 6
2 3
5 6
2
1 1
2 2
2
1 2
2 1
8
2 1
1 2
4 3
4 3
5 6
5 7
8 6
7 8
8
1 2
2 1
4 3
5 3
5 4
6 7
8 6
7 8
输出拷贝

拒绝




备注
在第一个测试案例中,多米诺骨牌可以被划分如下。

第一组骨牌:[{1,2},{4,3}] 。
第二组骨牌:[{2,1},{3,4}] 。
换句话说,在第一组中,我们采取数字为1和2的骨牌,在第二组中,我们采取数字为3和4的骨牌。
在第二个测试案例中,没有办法将多米诺骨牌分成两组,其中至少有一组会包含重复的数字。

题解:
根据例子我们发现

将每一个骨牌看做双向边连接, 如样例5

2 1
1 2
4 3
4 3
5 6
5 7
8 6
7 8
连完后建成的图为 {1,2}-{2,1}, {3,4}-{3,4}, {5,6}-{6,8}-{8,7}-{7,5}三个环 不难发现当环是偶数环时候, 我们可以隔着取放在一个集合里面, 如 {5,6}-{6,8}-{8,7}-{7,5}, 取{5,6},{8,7}放在一个集合, 其他两个放在另一个集合(即构建出一个二分图), 这样取两个集合中是不会出现重复的, 而若出现奇数环时, 取牌必定会有重复, 所以建完图后, 判断是否存在奇数环即可.

 

#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define int long long
//1 1 3 3 3
vector<int> p[200050];
int n;
map<int,int> vis;
map<int,int> st;
int dfs(int u,int x)
{
	st[u] = x;
	for(int i = 0;i < p[u].size();i++)
	{
		int j = p[u][i];
		if(!st[j])
		{
			if(!dfs(j,3-x))
			{
				return 0;
			}
		}
		else if(st[j] == x)
		{
			return 0;
		}
	}
	return 1;
}
void solve()
{
	cin >> n;
	vis.clear();
	st.clear();
	for(int i = 1;i <= n;i++)
	{
		p[i].clear();
	}
	int f = 0;
	for(int i = 1;i <= n;i++)
	{
		int a,b;
		cin >> a >> b;
		if(a == b)
		{
			f = 1;
		}
		vis[a]++,vis[b]++;
		if(vis[a]>2||vis[b] > 2)
		{
			f = 1;
		}
		p[a].push_back(b);
		p[b].push_back(a);
	}
		if(f)
		{
			cout<<"NO\n";
			return ;
		}
	for(int i = 1;i <= n;i++)
	{
		if(!st[i])
		{
			if(!dfs(i,1))
			{
				cout<<"NO\n";
				return ;
			}
		}
	}

	cout<<"YES\n";

	
}
signed main()
{
	int t = 1;
	cin >> t;
	while(t--)
	{
		solve();
	}
}
//2 5
//3
//9 7 


//2  3 4 3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/31074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7种主流数据分析软件比较及经典教材推荐

前言 STATA 软件优点&#xff1a;Stata以其简单易懂和功能强大受到初学者和高级用户的普遍欢迎。使用时可以每次只输入一个命令&#xff0c;也可以通过一个Stata程序一次输入多个命令。这样的话即使发生错误&#xff0c;也较容易找出并加以修改。尽管Stata的数据管理能力没有…

智慧点餐系统源码 扫码点餐小程序源码

&#x1f353;&#x1f353;文末获取联系&#x1f353;&#x1f353; JAVAUniappMySQLWinForm 系统功能介绍 1、单/多门店自由切换&#xff1b; 2、扫码&#xff08;桌号&#xff09;点餐&#xff1b; 3、多规格商品&#xff1b; 4、手动/自动接单&#xff1b; 5、自助&am…

MyBatis-Plus标准数据层开发

1. 标准CRUD使用 对于标准的CRUD功能都有哪些以及MP都提供了哪些方法可以使用呢&#xff1f; 我们先来看张表&#xff1a; 功能自定义接口MP接口新增boolean save(T t)int insert(T t)删除boolean delete(int id)int deleteById(Serializeble id)修改boolean update(T t)int…

系统分析与设计 复习

文章目录系统分析与设计 复习第 1 章 系统分析与设计概述系统特性DevOps第 2 章 系统规划**系统规划步骤**规划模型诺兰模型**CMM 模型**系统规划方法战略集合转换法 SST关键成功因素法 CSF企业资源规划法 BSPCSB 三者联系和区别第 3 章系统分析系统分析概述业务流程图系统流程…

【微电网优化】萤火虫算法求解微电网优化问题【含Matlab源码 2146期】

⛄一、萤火虫算法求解微电网经济优化问题简介 利用迭代搜索法、剔除劣势策略法、逆推归纳法和最大最小优化方法[7,8,9]等均可实现博弈均衡点的求解。但当维数较大时, 这些方法可能存在搜索速度、路径和精度上的问题。萤火虫优化算法[10]由于其原理简单、参数少、易于实现、具有…

Maven中依赖无法导入的终极解决方案

maven依赖无法引入的问题解决 修改maven配置 添加阿里云的设置 阿里云云效maven官方配置指南 创建自己的maven库 jdk的导入设置 阿里云仓库官网 仓库服务 (aliyun.com) jar包下载所在位置 在命令终端进行jar包的引入 mvn install:install-file -Dfilejar包所在路径…

【SQLite】二、SQLite 和 HeidiSQL 的安装

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;浙江某公司软件工程师&#xff0c;负责开发管理公司OA、CRM业务系统&#xff0c;全栈领域优质创作者&#xff0c;CSDN学院、蓝桥云课认证讲师&#xff0c;开发过20余个前后端分离实战项目&#xff0c;主要发展方向为Vue…

生物素标记试剂:(1458576-00-5,1802908-00-4)Biotin-PEG4-alkyne,Dde-生物素-四聚乙二醇-炔

一、Biotin-PEG4-alkyne 【中文名称】生物素-四聚乙二醇-炔&#xff0c;生物素-四聚乙二醇-丙炔基 【英文名称】 Biotin-PEG4-alkyne 【CAS】1458576-00-5 【分子式】C21H35N3O6S 【分子量】457.58 【纯度】95% 【外观】 淡黄色或白色固体 &#xff08;具体由其分子量大小决定…

web前端网页制作课作业:用DIV+CSS技术设计的静态网站【四大名著】中国传统文化主题题材设计

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

深入ftrace uprobe原理和功能介绍

上一章我们学习了&#xff0c;kprobe 可以实现动态内核的注入&#xff0c;基于中断的方法在任意指令中插入追踪代码&#xff0c;并且通过 pre_handler/post_handler去接收回调。另一个 kprobe 的同族是 kretprobe&#xff0c;只不过是针对函数级别的内核监控&#xff0c;根据用…

Arduino开发实例-RCWL0516微波雷达传感器驱动

RCWL0516微波雷达传感器驱动 接近感应是入侵警报、电灯开关以及其他家庭和工业自动化应用的常见应用。 电子工业中使用了多种接近检测方法。 最常见的方法是使用 PIR 传感器,它可以感应由温暖的身体引起的环境红外辐射的变化。 其他常见的方法包括使用反射的超声波或光束,其…

关于 SAP HANA 数据库的死锁问题(deadlock)

一个朋友在我的知识星球里提问&#xff1a; hana数据库发生死锁后&#xff0c;会自动解开吗&#xff1f;还是会等着自动超时后报错。 笔者在 15 年的 SAP 开发生涯中对 HANA 数据库接触得比较少&#xff0c;这里只能根据网络上搜索出的一些材料来回答。 首先&#xff0c;如果是…

YoC的使用

1 YoC的使用 参考地址 https://mp.csdn.net/mp_blog/analysis/article/all CB2201是基于CH2201的物联网应用开发板&#xff0c;开发板提供丰富的接口&#xff0c;满足应用的需求。基于该开发板&#xff0c;YoC 提供多种应用场景的开发示例&#xff0c;通过示例可以快速应用于…

卷出头了,终于学完阿里架构师推荐 413 页微服务分布式架构基础与实战笔记

时间飞逝&#xff0c;转眼间毕业七年多&#xff0c;从事 Java 开发也六年了。我在想&#xff0c;也是时候将自己的 Java 整理成一套体系。 这一次的知识体系面试题涉及到 Java 知识部分、性能优化、微服务、并发编程、开源框架、分布式等多个方面的知识点。 写这一套 Java 面试…

可视化大屏--响应式适配解决方案flexible.js

响应式适配解决方案flexible.js 最近公司开了第二个项目&#xff0c;是一个可视化大屏。 那么&#xff0c;在可视化大屏的基础上&#xff0c;我们肯定是要适配所有的屏幕设备&#xff0c;不能出现一换电脑&#xff0c;样式就紊乱的情况。 so,我们也不需要自己写媒体查询了&…

第40讲:MySQL索引的语法以及基本使用

文章目录1.索引的使用语法2.索引的基本使用2.1.准备一张数据表2.2.按照如下需求为表中的字段创建索引2.3.查看创建的索引2.4.删除索引3.验证使用索引前后的执行效率1.索引的使用语法 1&#xff09;创建索引 创建索引时&#xff0c;如果不指定索引的类型&#xff0c;默认就是常…

极简示例揭示 SwiftUI 中 @ObservedObject 与 @StateObject 状态的关键区别

问题现象 话说在 SwiftUI 中视图是状态的函数,这话一点都不假。正是秉性各异的各种状态构成了 SwiftUI 视图千变万化的功能。 这里,我们将为大家揭开其中两个常用状态,即 @ObservedObject 与 @StateObject 状态之间的最关键不同,并带领大家绕过实际使用中可能出现的坑: …

秋染田野稻菽飘香 国稻种芯·中国水稻节:河北各地农业丰收

秋染田野稻菽飘香 国稻种芯中国水稻节&#xff1a;河北各地农业丰收 河北日报 &#xff08;记者郝东伟&#xff09; 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 中国农民丰收节国际贸易促进会 国稻种芯中国水稻节 中国三农智库网-功能性农业农业大健康大会报道&#x…

JavaIO流:模型

IO 的字面意思是读/写数据&#xff0c;IO 模型是读/写数据的方式。常用到的读/写数据方式有&#xff1a;同步阻塞 IO、同步非阻塞 IO、IO 多路复用、信号驱动、异步 IO &#xff5e; 本篇内容包括&#xff1a;Java IO 与 IO 模型、五种 IO 模型、三种 Java IO 模型。 文章目录一…

计算机组成原理期末复习第三章-2(唐朔飞)

计算机组成原理期末复习第三章-2&#xff08;唐朔飞&#xff09; ✨欢迎关注&#x1f5b1;点赞&#x1f380;收藏⭐留言✒ &#x1f52e;本文由京与旧铺原创&#xff0c;csdn首发&#xff01; &#x1f618;系列专栏&#xff1a;java学习 &#x1f4bb;首发时间&#xff1a;&am…