洛谷1330 封锁阳光大学 二分图判断

题目

描述

这里写图片描述

输入输出样例
输入
3 3
1 2
1 3
2 3
输出(注意,下面的Impossible无换行)
Impossible

输入
3 2
1 2
2 3
输出(注意,下面的1无换行)
1

题解

每个连通图最多只有一个对应的二分图
  • 假设一个连通图可以构造出一个二分图,尝试对该二分图进行变形以构造新的二分图
  • 更改其中一个点的位置,则与该点相邻接的点也要改变位置,如此下去(类似bfs,一层层推进、改变位置)。因为这是一个连通图,所以这个点可以通往图中所有的点,所以所有的点都需要改变位置,也就等价于无改变
为什么只有二分图可以被河蟹封锁
  • 使用两种颜色对该图的端点进行染色,只要边的两个端点异色,则可以被封锁,并且,也只有两个端点异色的图才可以被河蟹封锁
  • 将所有同色的点加进一个集合里,从而这个集合内的点不相邻,并且每条边关联的两个点都属于不同的集合,所以这是一个二部图——也是该连通图的唯一的二部图
如何判别二分图
  • 染色法判断
  • 并查集判断

代码(并查集)

#include <algorithm>
#include <cassert>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <map>
#include <queue>
#include <vector>

using namespace std;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值