二分图
Jerry99s
OI -> ACM -> AI
展开
-
Methods for Vehicle Scheduling in PT System
在Public Transport System中,存在如何调度车辆使得所需车辆总数(fleet size)最少的问题。本文设计4种图论算法解决以上问题,作为“Planing & Operating Public Transport Systems”的课程大作业。MethodNodeModelSolverTime complexityRemark1End/S...原创 2020-04-15 22:34:03 · 475 阅读 · 0 评论 -
Codeforces 776D. Fight Against Traffic
题目:http://codeforces.com/problemset/problem/776/D题意: n个门,初始状态0为locked,1为unlocked; 每个门被2个开关控制; 每个开关按一次,所有被它控制的门改变一次状态; 问是否能通过按某些开关,使得所有门unlocked分析: 若一个门状态为1,则控制它的两个开关状态一定相同。 若一个门状态为0,则控制它的两个开...原创 2018-05-07 21:47:57 · 203 阅读 · 0 评论 -
POJ2226 Muddy Fields
题目:http://poj.org/problem?id=2226 分析:横竖联通块为节点,交叉为边,求最小覆盖,即最大匹配 代码:#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int Tmax=105,Tmax2=4005;int r,c,data[Tmax][Tmax原创 2015-10-31 15:13:30 · 329 阅读 · 0 评论 -
OpenJudge1538 Gopher II
题目:http://noi.openjudge.cn/ch0403/1538/ 分析:裸二分图匹配 代码:#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int Tmax=105;int n,m,ss,vv,limit,s[Tmax],ans;double data[Tm原创 2015-10-31 15:33:01 · 394 阅读 · 0 评论 -
POJ3041 Asteroids
题目:http://poj.org/problem?id=3041 分析:(x,y)位置有点,则必从x或y消,所以xy连一条边。求此图的最大覆盖,又“最大覆盖==最大匹配”,所以只用求出最大匹配就是答案。 代码:#include <cstdio>#include <algorithm>#include <cstring>#include <vector>using namespace s原创 2015-10-30 21:58:31 · 237 阅读 · 0 评论 -
二分图最大匹配的König定理及其证明
König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数。如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖所有的边。比如,下面这个图中的最大匹配和最小点覆盖已分别用蓝色和红色标注。它们都等于3。这个定理相信大多数人都知道,但是网络上给出的证明并不多见。有一些网上常见的“证明”明转载 2015-10-30 17:29:16 · 531 阅读 · 0 评论 -
HDU1054 Strategic Game
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1054 分析:二分图最小覆盖=二分图最大匹配,双向图注意别忘了ans>>1 代码:#include <cstdio>#include <algorithm>#include <cstring>#include <vector>using namespace std;const int Tmax=原创 2015-10-30 21:15:37 · 330 阅读 · 0 评论 -
形象谈匈牙利
【书本上的算法往往讲得非常复杂,我和我的朋友计划用一些简单通俗的例子来描述算法的流程】匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。-------等等,看得头大?那么请看下面的版本:通转载 2015-10-30 17:22:26 · 269 阅读 · 0 评论 -
匈牙利算法详解
首先,匈牙利算法是用来求二分图的最大匹配的,它的核心问题就是找增广路径。匈牙利算法的时间复杂度为O(VE),其中V为二分图左边的顶点数,E为二分图中边的数目。现在我们来看看增广路有哪些性质:(1)有奇数条边。(2)起点在二分图的左半边,终点在右半边。(3)路径上的点一定是一个在左半边,一个在右半边,交替出现。(4)整条路径上没转载 2015-10-30 17:19:53 · 577 阅读 · 0 评论 -
POJ1469 COURSES
题目:http://poj.org/problem?id=1469 分析:匈牙利水题 代码:#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int Tmax=305;int n,p,map[Tmax][Tmax],s[Tmax],ans;bool v[Tmax];boo原创 2015-10-30 11:53:25 · 267 阅读 · 0 评论 -
HDU2063 过山车
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2063 分析:裸二分图最大匹配问题 代码:#include <cstdio>#include <algorithm>#include <cstring>#include <vector>using namespace std;const int Tmax=505;int ngirl,m,nbo原创 2015-10-30 11:32:10 · 385 阅读 · 0 评论