二分图判断模板题目 - 染色的村庄
Submit solution
Points:
100
Time limit:
1.0s
Memory limit:
4M
Author:
Problem type
Allowed languages
C, C++
🧩 二分图判断模板题目 - 染色的村庄
📝 题目描述:
在遥远的国度里,有一个由 \(n\) 个村庄组成的国家,这些村庄之间由 \(m\) 条双向道路连接。
有些村庄之间有直接的敌对关系,一旦两个敌对的村庄被分配到同一组,将会爆发冲突。
现在你要将所有村庄分成两组,使得任意一对敌对的村庄都不在同一组中。请判断是否能够做到这一点。
换句话说,给你一个无向图,判断它是否是一个 二分图。
📥 输入格式:
第一行包含两个整数 \(n\) 和 \(m\) \((1 \le n \le 10^5,0 \le m \le 10^5)\),表示村庄数量和道路数量。
接下来 \(m\) 行,每行包含两个整数 \(u\) 和 \(v\) \((1 \le u, v \le n, u \neq v)\),表示村庄 \(u\) 和 \(v\) 之间有一条道路。
📤 输出格式:
- 如果可以分组,输出:
Yes
- 如果无法分组,输出:
No
🔍 输入样例 1:
4 4
1 2
2 3
3 4
4 1
✅ 输出样例 1:
Yes
(可以分为组1: {1,3}, 组2: {2,4})
🔍 输入样例 2:
3 3
1 2
2 3
3 1
❌ 输出样例 2:
No
(三个点成环,无法二分)
Comments