二分图/忆re.

rt:
本文分两部分

  1. 二分图
  2. 忆re.

part 1 二分图

定义

我会告诉你我OIwiki没看懂吗?

其实就是有一张图,将它的点分为红点和蓝点,红点只能和蓝点相连,同理蓝点只能和红点相连,满足这个条件的图就是二分图。

形式上的:
image
(还是贺了OIwiki)

判定

(没太用过)
给这张图染色,若直接相连的两个点颜色是相同的,则其不是一个二分图。(即如定义所述)

代码

#include<bits/stdc++.h>
using namespace std;
int color[1010];
int h[1010],to[20010],nxt[20010],tot;
void add(int x,int y)
{tot++;to[tot]=y;nxt[tot]=h[x];h[x]=tot; 
}
bool dfs(int x,int c) 
{color[x] = c; // 给当前节点染色for(int i=h[x];i;i=nxt[i]){int y=to[i];if(color[y]==c) {return false; // 相邻节点颜色相同,不是二分图}if(color[y]==0&&!dfs(y,-c)) {return false; // 未染色,递归染色}}return true;
}
int main() 
{int n,m;cin>>n>>m;memset(color,0,sizeof(color));for(int i=1;i<=m;i++) {int x,y;cin>>x>>y;add(x,y);add(y,x);   }bool is=true;for (int i=1;i<=n;i++) {if(color[i]==0&&!dfs(i,1)) {is=false;break;}}cout<<is<<endl;return 0;
}

二分图最大匹配

定义

二分图匹配的例子是\(p,t\)配对。设有若干\(t\)\(p\),每个只能配对一次,且允许配对的组合已由某个列表限定。此时,二分图最大匹配算法的任务就是在这些限制下,找到最多的配对对数,使尽可能多的成功配对。

匈牙利算法

rt:
我们有这样一张二分图;
image
让第一个红点先匹配:
image
然后匹配第二个红点:
image
发现第三个红点没有可以匹配的了,让一个红点给它让位:
image
最后第四个红点也需要一个红点给他让位:
image

都匹配上了,最大匹配数是\(4\)

例题

洛谷 P3386 【模板】二分图最大匹配

image

代码实现

#include<bits/stdc++.h>
using namespace std;
int match[1010];
bool vis[1010];
int h[1010],to[50010],nxt[50010],tot;
void add(int x,int y)
{tot++;to[tot]=y;nxt[tot]=h[x];h[x]=tot;
}
bool Hungarian(int x)
{for(int i=h[x];i;i=nxt[i]){int y=to[i];if(!vis[y]){vis[y]=1;if(!match[y]||Hungarian(match[y])){match[y]=x;return 1;}}	}	return 0;
} 
int main()
{int n,m,e;cin>>n>>m>>e;for(int i=1;i<=e;i++){int x,y;cin>>x>>y;add(x,y);}int ans=0;for(int i=1;i<=n;i++){memset(vis,false,sizeof(vis));if(Hungarian(i)){ans++;}}cout<<ans;return 0;
} 

二分图最小点覆盖

定义

在一张无向图中选择最少的顶点,满足每条边至少有一个端点被选。

Kőnig 定理

\[最小点覆盖中的顶点数量=最大匹配中的边数量 \]

证明见OIwiki

例题

洛谷 UVA1194 Machine Schedule

image

实现

还是匈牙利算法,与上题一致。

有向无环图最小路径覆盖

定义

在一张有向图中,选择最少数量的简单路径,使得所有顶点都恰好出现在一条路径中。

定理

\[有向无环图的最小路径覆盖+相应的二分图的最大匹配的边数量=顶点数量 \]

例题

洛谷 UVA1184 Air Raid

image

实现

还是匈牙利算法,与上题一致。但别忘了用顶点数减去最大匹配数

微丸呆栩

part 2 忆re.

呃呃呃
其实是一个很温柔的女生啊。(其实有时候也会有点火爆,但嘁嘁喳喳的像只小鸟)
会处理很多奇奇怪怪的情绪呢(我的)
属于那种说话很有意思的人
啊喜欢叫我大名(坏坏坏)
求贴贴不会被拒绝(我)
“每一刻都像永远”
QAQ还有一打不能说的就不放在这里了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/944674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程与数学 03-009 Linux 操作系统应用 22_Linux 故障排除与问题克服

编程与数学 03-009 Linux 操作系统应用 22_Linux 故障排除与问题克服pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…

《IDEA 2025长效采用配置指南:有效期配置至2099年实战之JetBrains全家桶有效》​

《IDEA 2025长效采用配置指南:有效期配置至2099年实战之JetBrains全家桶有效》​pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

如何制作PDF文件目录? - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

todesk远程到被控Mac后能看到画面,鼠标键盘执行无反应

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Visual Studio 插件 - 喝水提醒 - 指南

Visual Studio 插件 - 喝水提醒 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

10/23

状态图状态图通常是对反应型对象建模 活动图 活动图展示的是流程*构件图构件图有标志 构件图展示的是构件之间的 组织和依赖供接口和需接口 部署图--对物理方面建模的方法 部署图对实施方面进行建模 立方体需求建模、…

玛哈特十一辊矫平机:把金属板送进“11 次节拍器” - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

JAVA 排序用法

目录背景和价值一、 Comparator 的基本用法二、 Java 8 之前(匿名内部类)三、 Java 8 之后(Lambda 表达式和方法引用)1. 使用 Lambda 表达式2. 使用静态工厂方法 Comparator.comparing()(推荐)3. 链式比较(多条…

esp32-usb-jtag 调试踩坑

背景 ESP 芯片通常使用 UART 实现串口,并可以通过外部 USB-UART 桥接芯片,连接到主机/PC 上的串口控制台仿真器。然而,在具有 USB 串行/JTAG 控制器的 ESP 芯片上,控制器的 CDC-ACM 部分即可实现串口,该串口直接连…

MySQLDay3

3.约束 3.1、概述概念:约束时作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性。分类:注意:约束时作用于表中字段上的,可以在创建表/修改表的时候添加约束。 案例…

第3天(中等题+简单题 数组、滑动窗口)

打卡第三天 1道简单题+2道中等题定长滑动窗口套路:今日耗时≈一小时 明天继续

飞牛OS通过docker部署SillyTavern酒馆

一、下载在飞牛 Docker -> 镜像仓库 中搜索 SillyTavern 下载镜像。镜像仓库中没有官方的 SillyTavern 镜像,下载有最多下载数的镜像即可,我使用 goolashe/sillytavern:stable 。前往 GitHub - SillyTavern/Silly…

完整教程:微信小程序学习(一)

完整教程:微信小程序学习(一)2025-10-23 20:35 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !import…

ollama v0.12.2 版本更新详解:Qwen3 架构协助、Multi-Regex 分词器、新引擎前后缀匹配等功能升级

ollama v0.12.2 版本更新详解:Qwen3 架构协助、Multi-Regex 分词器、新引擎前后缀匹配等功能升级pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !…

深入解析:XML中的 CDATA mybaitis xml中的 <![CDATA[ xxxx ]]>

深入解析:XML中的 CDATA mybaitis xml中的 <![CDATA[ xxxx ]]>pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

MySQL主从同步读写分离

[!NOTE] 准备三台机器: 两台用于主从同步,一台读写分离。 环境初始化:关防火墙一、主从同步实验主机从机安装数据库 # 安装 wget下载工具yum -y install wget # 下载 mysql 官方 yum 源安装包wget https://repo.mys…

AI股票预测分析报告 - 2025年10月23日 20:26

AI股票预测分析报告 - 2025年10月23日 20:26body { font-family: "Microsoft YaHei", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: rgba(51, 51, 51, 1); max-wi…

nginx反向代理测试搭建

一、nginx反向代理模拟搭建[!IMPORTANT] 步骤: 1.准备三台服务器,一台装nginx,配置两个网卡,一个有网一个无网;两台装jdk和tomecat,无网(仅主机模式) 2.两台被访问的服务器,进入tomcat中的webapps中,删除所有文…

SwiftUI NavigatorStack 导航容器

NavigationStack 是一个用状态驱动、类型安全的声明式导航容器,它通过管理视图堆栈和导航路径来实现 SwiftUI 应用中的页面导航(专注于单栏场景) NavigationStack 需要 iOS 16.0+以上版本支持。 核心要素 Navigatio…