当前位置: 首页 > news >正文

AcWing 860:染色法判定二分图 ← 并查集

【题目来源】
https://www.acwing.com/problem/content/862/

【题目描述】
给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环。
请你判断这个图是否是二分图。

【输入格式】
第一行包含两个整数 n 和 m。
接下来 m 行,每行包含两个整数 u 和 v,表示点 u 和点 v 之间存在一条边。​​​​​​​

【输出格式】
如果给定图是二分图,则输出 Yes,否则输出 No。​​​​​​​

【输入样例】
4 4
1 3
1 4
2 3
2 4​​​​​​​

【输出样例】
Yes

【数据范围】
1≤n,m≤10^5​​​​​​​

【算法分析】
● 二分图的基本性质‌
(1)二分图要求所有边连接的两个节点必须属于不同的集合
(2)与同一节点相邻的所有节点必须属于同一集合(即二分图的另一部分)。​​​​​​​
● 基于并查集实现的算法核心步骤详解‌
对于每个节点 u 遍历其所有邻居 j:
(1)冲突检测‌:如果 u 和 j 已在同一集合,即 find(u)==find(j)。说明存在奇数环,不是二分图。
(2)邻居合并‌:将 u 的所有邻居合并到同一集合,即 pre[find(e[h[u]])]=find(j)。确保它们都在二分图的另一侧。
基于并查集算法的优势在于避免了递归深度问题,适合处理大规模图,且代码简洁高效。整体复杂度 O(n+m)。

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int N=1e5+5;
int pre[N];
int e[N<<1],ne[N<<1],h[N],idx;void add(int a,int b) {e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}int find(int x) {if(x!=pre[x]) pre[x]=find(pre[x]);return pre[x];
}int main() {int n,m;cin>>n>>m;memset(h,-1,sizeof h);for(int i=1; i<=n; i++) pre[i]=i;while(m--) {int a,b;cin>>a>>b;add(a,b),add(b,a);}for(int u=1; u<=n; u++) {for(int i=h[u]; i!=-1; i=ne[i]) {int j=e[i];if(find(j)==find(u)) {cout<<"No\n";return 0;}pre[find(e[h[u]])]=find(j);}}cout<<"Yes\n";return 0;
}/*
in:
4 4
1 3
1 4
2 3
2 4out:
Yes
*/





【参考文献】
https://www.acwing.com/solution/content/175783/
https://www.acwing.com/solution/content/128098/
https://www.acwing.com/solution/content/105874/
https://www.acwing.com/solution/content/246924/

 

http://www.jsqmd.com/news/50926/

相关文章:

  • 回调函数20251125
  • 类模板的实现
  • rime(小狼毫)+雾凇+皮肤+万象大模型+个人词库补充
  • 2025年中国前五大轮胎品牌:专业测评与选购指南
  • lru_cache装饰器的缓存清除机制原理
  • 2025年中国前十大轮胎品牌:最新官方榜单深度解析
  • 网格图分治模型
  • Python内置的lru_cache装饰器实现缓存教程
  • 2025年轮胎品牌推荐:权威TOP10全球品牌综合排名
  • 详细介绍:Git分支合并实战指南:从feature到master,一文搞定全流程!
  • 北京墙体彩绘公司推荐香鲸艺术坊,行业排名遥遥领先!
  • 虚拟科学峰会推动技术交流创新
  • java---gradle配置国内镜像
  • 2025年11月南京装修公司综合实力排行榜(品牌智鉴榜推荐)
  • 揭开Claude Opus 4.5神秘面纱
  • Image图片组件基础加载与属性设置
  • 2025年新能源汽车轮胎推荐:独家负载与静音测评报告
  • 11月25日日记
  • CF370A-Rook, Bishop and King
  • 实用指南:基于“开源AI智能名片链动2+1模式S2B2C商城小程序”的会员制培养策略研究
  • 2025年越野轮胎推荐:十大专业品牌最新全地形解析
  • 11月25日
  • Switch大气层20-整合包1-9-0测试版
  • 2025年家用轿车轮胎推荐:权威综合排名与选购指南
  • 基于.net6的一款开源的低代码、权限、工作流、动态接口平台-系统安装篇
  • macOS开启自带的TFTP Server
  • AT_arc178_c [ARC178C] Sum of Abs 2
  • 几道树上计数问题
  • 接入层傻瓜机引起的VLAN间环路
  • 实用指南:线性回归中梯度下降的最终结果是否为全局最小解