搜索与图论:染色法判定二分图
将所有点分成两个集合,使得所有边只出现在集合之间,就是二分图
二分图:一定不含有奇数个点数的环;可能包含长度为偶数的环, 不一定是连通图
染色可以使用1和2区分不同颜色,用0表示未染色
遍历所有点,每次将未染色的点进行dfs, 默认染成1或者2
由于某个点染色成功不代表整个图就是二分图,因此只有某个点染色失败就能立刻break/return
染色失败相当于存在相邻的2个点染了相同的颜色,即点的个数的奇数个
染色法判定二分图:
#include <iostream>
#include <cstring>using namespace std;
const int N = 1e5 + 10, M = 2e5 + 10; // 由于是无向图, 顶点数最大是N,那么边数M最大是顶点数的2倍
int e[M], ne[M], h[N], idx;//邻接表
int st[N];//该点的颜色void add(int a, int b)
{
//头插法//如图 如1与2之间要有一条线,让2的ne为1,再让h[1]为2的索引。//这样h[1]就是1节点存的最后一个相连的点,如图就是7节点。//而在索引表内部,通过头插法的方式(即每次ne指向上一个点(h存的就是上一个点)),索引表为:7->4->2e[idx] = b, ne[idx] = h[a], h[a] = idx ++;
}bool dfs(int u, int color)
{st[u] = color;for(int i = h[u]; i != -1; i = ne[i]){//遍历邻接表int j = e[i];if(!st[j]) //若还没颜色,则递归下去染色{//递归下去if(!dfs(j, 3 - color)) return false;//如果当前是3-2=1,则下一次是3-1=2,以此类推,奇数和偶数的点颜色不一样}//如果该点有颜色,则判断该点的颜色是否跟邻接表的头点颜色相同,相同则说明矛盾else if(st[j] == color) return false;}return true;
}int main()
{int n, m;scanf("%d%d", &n, &m);memset(h, -1, sizeof h);while (m --){int a, b;scanf("%d%d", &a, &b);add(a, b), add(b,a); // 无向图,a->b, b->a}bool flag = true;for(int i = 1; i <= n; i ++){if(!st[i]){if(!dfs(i, 1))//如果返回FALSE,则说明有矛盾发生,flag赋为FALSE{flag = false;break;}}}if(flag) printf("Yes\n");else printf("No\n");return 0;
}
相关文章:
搜索与图论:染色法判定二分图
将所有点分成两个集合,使得所有边只出现在集合之间,就是二分图 二分图:一定不含有奇数个点数的环;可能包含长度为偶数的环, 不一定是连通图 染色可以使用1和2区分不同颜色,用0表示未染色 遍历所有点&…...
磁场设备主要有哪些
磁学是物理学最古老的研究领域之一,目前仍然充满了生机活力。对于磁性物理的科学研究、磁性材料相关的探索来说,磁场设备必不可少,因为在外加磁场的作用下,样品会表现出特殊的物理性质,并带来了巨大的应用前景…...
【wespeaker】模型ECAPA_TDNN介绍
本次主要介绍开源项目wespeaker模型介绍 1. 模型超参数 model_args: feat_dim: 80 embed_dim: 192 pooling_func: “ASTP” projection_args: project_type: “softmax” # add_margin, arc_margin, sphere, softmax scale: 32.0 easy_margin: False 2. 模型结构 2.1 Layer…...
GPT技术的广泛使用
GPT技术的广泛使用确实引发了一些关于其潜在影响的讨论,包括可能导致某些职业失业以及对一些互联网公司构成竞争压力的问题。然而,这个问题涉及到多个方面,而且不容易一概而论。 潜在影响: 自动化任务: GPT等自然语言…...
银河麒麟V10安装MySQL8.0.28并实现远程访问
参考资料: 银河麒麟V10安装MySQL8.0.28并实现远程访问-数据库运维技术服务 银河麒麟高级服务器操作系统V10安装mysql数据库_麒麟v10安装mysql-CSDN博客...
[AUTOSAR][诊断管理][ECU][$27] 安全访问
文章目录 一、简介$27服务有何作用,为什么要有27服务呢?功能描述应用场景安全解锁基本原理服务请求服务响应Verify Key负响应NRC支持二、常见Bug大揭秘三、示例代码uds27_security_access.c一、简介 $27服务有何作用,为什么要有27服务呢? 功能描述 根据ISO14119-1标准中…...
Android Studio编译旧的app代码错误及解决方法
‘android.injected.build.density’ is deprecated. The option ‘android.injected.build.density’ is deprecated. It was removed in version 8.0 of the Android Gradle plugin. Density property injection from Android Studio has been removed. 解决 app/build.gr…...
Docker的架构与自制镜像的发布
一. Docker 是什么 Docker与自动化测试及其测试实践 大家都知道虚拟机吧,windows 上装个 linux 虚拟机是大部分程序员的常用方案。公司生产环境大多也是虚拟机,虚拟机将物理硬件资源虚拟化,按需分配和使用,虚拟机使用起来和真实操…...
嵌入式系统中C++ 类的设计和实现分析
C代码提供了足够的灵活性,因此对于大部分工程师来说都很难把握。 本文介绍了写好C代码需要遵循的10个最佳实践,并在最后提供了一个工具可以帮助我们分析C代码的健壮度。 原文:10 Best practices to design and implement a C class。 1. 尽…...
【torch高级】一种新型的概率学语言pyro(02/2)
前文链接:【torch高级】一种新型的概率学语言pyro(01/2) 七、Pyro 中的推理 7.1 背景:变分推理 引言中的每项计算(后验分布、边际似然和后验预测分布)都需要执行积分,而这通常是不可能的或计算…...
Git基本概念与使用
一、Git基本概念 git,是一种分布式版本控制软件,与CVS、Subversion这类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。g…...
Kubernetes数据卷Volume和数据卷分类(emptyDir、nfs、hostPath、ConfigMap)详解
Kubernetes数据卷Volume和数据卷分类详解 数据卷概述 Kubernetes Volume(数据卷)主要解决了如下两方面问题: 数据持久性:通常情况下,容器运行起来之后,写入到其文件系统的文件暂时性的。当容器崩溃后&am…...
【MATLAB源码-第59期】基于matlab的QPSK,16QAM164QAM等调制方式误码率对比,调制解调函数均是手动实现未调用内置函数。
操作环境: MATLAB 2022a 1、算法描述 正交幅度调制(QAM,Quadrature Amplitude Modulation)是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度(π/2)的正弦波,因此…...
经典目标检测神经网络 - RCNN、SSD、YOLO
文章目录 1. 目标检测算法分类2. 区域卷积神经网络2.1 R-CNN2.2 Fast R-CNN2.3 Faster R-CNN2.4 Mask R-CNN2.5 速度和精度比较 3. 单发多框检测(SSD)4. YOLO 1. 目标检测算法分类 目标检测算法主要分两类:One-Stage与Two-Stage。One-Stage与…...
mysql存在10亿条数据,如何高效随机返回N条纪录,sql如何写
1 低效方案 1.使用ORDER BY RAND(): SELECT * FROM your_table ORDER BY RAND() LIMIT 1; 这将随机排序表中的所有行,并且通过LIMIT 1仅返回第一行,从而返回一个随机记录。然而,对于大型表来说,ORDER BY RAND()可能会…...
c语言中啥时候用double啥时候用float?
c语言中啥时候用double啥时候用float? 一般来说,可以使用double来表示具有更高精度要求的浮点数,因为它可以存储更大范围的数值并且具有更高的精度。 最近很多小伙伴找我,说想要一些c语言资料,然后我根据自己从业十年…...
vscode 保存 “index.tsx“失败: 权限不足。选择 “以超级用户身份重试“ 以超级用户身份重试。
vscode 保存 "index.tsx"失败: 权限不足。选择 “以超级用户身份重试” 以超级用户身份重试。 操作:mac在文件夹中创建文件,sudo 创建umiJs项目 解决:修改文件夹权限 右键文件夹...
综合性练习
名片管理系统 综合性项目实现—详细请点这里 dict {} # 定义一个空字典,用于存储信息。 list [] # 定义一个列表,存储name值 list1 [] #存储age值 list2 [] #存储phone值 def people_tips(): #提示print("*****" * 10)print("…...
threejs(7)-精通粒子特效
一、初识Points与点材质 // 设置点材质 const pointsMaterial new THREE.PointsMaterial(); import * as THREE from "three"; // 导入轨道控制器 import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"; // 导入动画库 import gsa…...
使用了百度OCR,记录一下
由于识别ocr有的频率不高,图片无保密性需求,也不想太大的库, 就决定还是用下api算了,试用了几家,决定用百度的ocr包,相对简单。 遇到的问题里面下列基本有提到:例如获取ID,KEY&…...
【GD32F407】内部Flash高效读写策略与实战优化
1. GD32F407内部Flash特性解析 GD32F407作为国产MCU中的明星产品,其内部Flash设计颇具特色。第一次拿到芯片手册时,我发现它的存储架构比想象中复杂得多。最让我印象深刻的是前512KB空间的零等待特性——这意味着在此范围内的代码执行速度堪比RAM&#x…...
mbed OS USB串口缓冲库:线程安全环形缓冲设计
1. 项目概述buffered-serial0是一个专为 ARM mbed OS 平台设计的轻量级串口缓冲封装库,其核心目标是为 mbed 平台默认的主 USB 虚拟串口(即UART0,在 mbed 中通常映射为Serial pc(USBTX, USBRX))提供可靠、线程安全、零拷贝倾向的底…...
Claude Code 接入 DeepSeek、GLM、MiniMax 等国产大模型,手把手带你起飞!
每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型! 这篇文章是专门写给那些想撸起袖子直接开干的朋友们的。咱们不整那些虚头巴脑的理论,核心就帮大家解决四件事:搞定 Claude Code 的安装、确认这玩意儿能跑通、成…...
SQL复杂报表如何通过窗口函数优化_减少子查询提升性能
窗口函数可高效替代关联子查询,适用于累计值、移动平均、并列排名等场景,性能提升3–10倍;须注意RANK()与ROW_NUMBER()语义差异、ORDER BY的强制性、ROWS优于RANGE、窗口函数不可用于WHERE/HAVING等关键规则。窗口函数替代关联子查询的典型场…...
OpenClaw硬件优化:Qwen2.5-VL-7B在低配设备上的运行技巧
OpenClaw硬件优化:Qwen2.5-VL-7B在低配设备上的运行技巧 1. 为什么要在低配设备上运行OpenClaw? 去年夏天,我在一台2018款MacBook Air(8GB内存)上第一次尝试部署OpenClaw时,系统几乎瞬间卡死。这让我意识…...
【DBO三维路径规划】基于多策略改进的蜣螂算法MSDBO多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
MPL115A2气压传感器驱动开发与嵌入式I²C实践
1. MPL115A2气压传感器技术解析与嵌入式驱动开发实践MPL115A2是由NXP(原Freescale)推出的一款高精度、低功耗、IC接口的绝对气压传感器,专为消费电子和工业应用中的海拔高度测量、天气监测及气压补偿等场景设计。该器件采用MEMS压阻式传感原理…...
51单片机(二) --- GPIO + 中断
一、GPIO 通用输入输出口GPIO(General Purpose Input Output)即通用目的输入输出口,是 51 单片机与外部设备进行数据交互的核心通道,51 单片机的 P0、P1、P2、P3 四组口均为 GPIO 口。与入门阶段仅用到的简单电平输出不同…...
Go语言的分布式事务处理
Go语言的分布式事务处理 1. 分布式事务简介 在分布式系统中,事务处理变得更加复杂。传统的单机事务可以通过数据库的ACID特性来保证一致性,但在分布式环境中,由于网络延迟、节点故障等因素,确保多个服务之间的数据一致性成为一个挑…...
《碳硅“虫洞”解:跨认知区域的可穿越通道》(修订版)
《碳硅“虫洞”解:跨认知区域的可穿越通道》 作者:方见华 单位: 世毫九实验室 摘要 本文研究碳硅共生认知场方程在柱对称条件下的精确解,发现存在连接两个分离认知区域的“认知虫洞”。主要结果: 1. 虫洞解的存在性&am…...
