BFS——二分图判断

简介: BFS——二分图判断

image.png

20201210152253971.jpg

算法思想:BFS给所有顶点染色,相邻顶点染不同颜色,染过的顶点检查与相邻顶点是否颜色不同。

#include<iostream>
#include<queue>
#include<string.h>
using namespace std;
const int N=1e4;
int color[N],graph[N][N];
bool bfs(int s,int n){
    queue<int> q;
    q.push(s);
    color[s]=1;
    while(!q.empty()){
        int from=q.front();//取队头颜色,父结点
        q.pop();
        for(int i=1;i<=n;i++){//按层遍历
            if(graph[from][i]&&color[i]==-1){
                q.push(i);
                color[i]=!color[from];//染与父结点不同的颜色
            }
            if(graph[from][i]&&color[from]==color[i]){//如果已经着色检查颜色是否相同
                return false;
            }
        }
    }
    return true;
}
int main(){
    int n,m,a,b,i;
    memset(color,-1,sizeof(color));
    cin>>n>>m;
    for(i=0;i<m;i++){
        cin>>a>>b;
        graph[a][b]=graph[b][a]=1;
    }
    bool flag=false;
    for(i=1;i<=n;i++){
        if(color[i]==-1&&!bfs(i,n)){
            flag=true;
            break;
        }
    }
    if(flag){
        cout<<"No"<<endl;
    }else{
        cout<<"Yes"<<endl;
    }
    return 0;
}
相关文章
|
测试技术 数据安全/隐私保护
软件测试制度-新手小白如何制定测试管理工作规范?
软件测试制度-新手小白如何制定测试管理工作规范?
542 1
|
XML Dubbo Java
Dubbo 3 Spring相关优化
Spring Context Initialization首先,我们先来看一下Spring context初始化主要流程,如下图所示: 相关代码:org.springframework.context.support.AbstractApplicationContext#refresh()简单描述一下每个步骤包含的内容:创建BeanFactory:读取加载XML/注解定义的BeanDefiniti
1329 3
Dubbo 3 Spring相关优化
|
9月前
|
存储 算法 Go
【LeetCode 热题100】17:电话号码的字母组合(详细解析)(Go语言版)
LeetCode 17题解题思路采用回溯算法,通过递归构建所有可能的组合。关键点包括:每位数字对应多个字母,依次尝试;递归构建下一个字符;递归出口为组合长度等于输入数字长度。Go语言实现中,使用map存储数字到字母的映射,通过回溯函数递归生成组合。时间复杂度为O(3^n * 4^m),空间复杂度为O(n)。类似题目包括括号生成、组合、全排列等。掌握回溯法的核心思想,能够解决多种排列组合问题。
379 11
|
11月前
|
存储 缓存 API
类似ComfyUI和Midjourney这样的文生图图生图应用的API与服务架构该怎么设计
文生图图生图应用的API与服务架构分析。或和微服务类似,但是不同。ComfyUI其 API 架构设计为我们理解此类应用提供了很好的参考模型。但距离生产级别的应用差距还有很远。
684 0
|
SQL 分布式计算 资源调度
Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询
这篇教程将展示如何使用 Flink CDC + Iceberg + Doris 构建实时湖仓一体的联邦查询分析,Doris 1.1版本提供了Iceberg的支持,本文主要展示Doris和Iceberg怎么使用,同时本教程整个环境是都基于伪分布式环境搭建,大家按照步骤可以一步步完成。完整体验整个搭建操作的过程。
3238 1
|
数据采集 人工智能 自然语言处理
阿里云百炼平台深度体验:智能问答与模型训练的创新之旅
在人工智能的浪潮中,阿里云百炼平台以其强大的大模型开发能力,为企业和个人开发者提供了一站式的解决方案。本文将从知识检索应用搭建、模型训练调优以及流程管理功能三个角度,全面评测阿里云百炼平台的实际使用体验。
898 4
|
编解码 自然语言处理 前端开发
Web Audio API 第3章 音量和响度
Web Audio API 第3章 音量和响度
|
网络协议 网络架构
TCP/IP 协议体系结构四层分别是什么?
TCP/IP协议体系结构四层分别是:1、数据链路层;实现网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。2、网络层;实现数据包的选路和转发。3、传输层;为两台主机上的应用程序提供端到端的通信。4、应用层;负责处理应用程序的逻辑。