| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> acwing基础课——二分图 -> 正文阅读 |
|
[数据结构与算法]acwing基础课——二分图 |
基本思想: ? ? ? ? 二分图:在一张图中,如果能把全部点分到两个集合,且保证两个集合内部没有任何一条边,图中的边只存在于两个集合之间,那么这张图就是二分图。 ? ? ? ? 这里我们主要介绍染色法(一般用来判定二分图)和匈牙利算法(一般用来计算二分图的最大匹配数)。染色法就是用两种不同的颜色对图中的点进行染色,一个点显然不能具有两种颜色,所以如果出现这样的点,该图就不是二分图,即图中不包含奇数环;匈牙利算法是两个集合分别选一个点,两个点之间有边就确定一条关系,如果某个点的关系被确定了,他会先去看上一个点能否换其他点,如果不能,该点再去找别的点,最后得出的最多的关系数量就是最大匹配数。 给定一个?n?个点 m?条边的无向图,图中可能存在重边和自环。 请你判断这个图是否是二分图。 输入格式 第一行包含两个整数?n?和?m。 接下来?m?行,每行包含两个整数?u?和?v,表示点?u?和点?v?之间存在一条边。 输出格式 如果给定图是二分图,则输出? 数据范围 1≤n,m≤1e5 输入样例:
输出样例:
给定一个二分图,其中左半部包含?n1?个点(编号?1~n1),右半部包含?n2?个点(编号?1~n2),二分图共包含?m?条边。 数据保证任意一条边的两个端点都不可能在同一部分中。 请你求出二分图的最大匹配数。
输入格式 第一行包含三个整数?n1、?n2?和?m。 接下来?m?行,每行包含两个整数?u?和?v,表示左半部点集中的点?u?和右半部点集中的点?v?之间存在一条边。 输出格式 输出一个整数,表示二分图的最大匹配数。 数据范围 1≤n1,n2≤500, 输入样例:
输出样例:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 14:27:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |