1 //Hopcroft-Karp 算法 时间复杂度为O(n^(1/2)*m) 2 //该算法是对匈牙利算法的优化,利用匈牙利算法一次只能找到一条增广路径, 3 //Hopcroft-Karp就提出一次找到多条不相交的增广路径(不相交就是没有公共点和公共边的增广路径),称为增广路集 4 //然后根据... ...
分类:
编程语言 时间:
2019-09-03 09:15:17
阅读次数:
69
算法:匈牙利算法 复杂度:不好算,懒得算 这道题我调了两个半小时,代码长,细节多,现总结一下栽过的坑 1. 此题数组传参的方式很好,能够降低代码难度,值得学习 2. 如何使人和时间、门的二元组互不冲突很重要 3. 如果点无冲突用链表,否则用vector 4. 点是从0开始建的,初始化match数组不 ...
分类:
其他好文 时间:
2019-09-01 18:15:44
阅读次数:
76
(点击此处查看原题) 匈牙利算法简介 个人认为这个算法是一种贪心+暴力的算法,对于二分图的两部X和Y,记x为X部一点,y为Y部一点,我们枚举X的每个点x,如果Y部存在匹配的点y并且y没有被其他的x匹配,那就直接匹配;如果Y中已经没有可以和x匹配的点(包括可以匹配的点已经被其他的x匹配),那就让已经匹 ...
分类:
编程语言 时间:
2019-08-31 10:54:56
阅读次数:
107
嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 这是一道很经典的匈牙利问题: 把男同学看成左边点,女同学看成右边点,如果两个同学愿意同坐过山车,则连边,最后输出最大匹配数即可... AC代码: 1 #include<cstdio> 2 ...
分类:
其他好文 时间:
2019-08-30 20:45:22
阅读次数:
56
小编日更到此就结束了,马上就要开学了,这是小编所有的日更内容,特地汇总一下: 常用技巧: 【算法?日更?第二十一期】数据结构:差分与前缀和 【算法?日更?第二十三期】数据结构:two-pointer(尺取法)&莫队 【算法?日更?第三十八期】迭代器是什么? 【算法?日更?第五十四期】知识扫盲:什么是 ...
分类:
编程语言 时间:
2019-08-29 09:36:17
阅读次数:
165
嗯... 题目链接:http://poj.org/problem?id=3041 这道题的思想比较奇特: 把x坐标、y坐标分别看成是二分图两边的点,如果(x,y)上有行星,则将(x,y)之间连一条边,而我们要做的就是要找尽量少的点把所有的边覆盖,即为最小点覆盖问题,根据König定理:最小覆盖点数= ...
分类:
编程语言 时间:
2019-08-26 22:44:56
阅读次数:
106
▎前言 戳开这个链接看看,惊不惊喜,意不意外?传送门。 没想到我的博客竟然被别人据为己有了,还没办法投诉。 这年头写个博客太难了~~~ 之前小编写过了二分图的一些基础知识和匈牙利算法,今天来讲一讲km算法,若你不知道匈牙利算法,请先看下面的博客。(否则会体验极差) 传送门 ▎km算法 ?『引入』 之 ...
分类:
编程语言 时间:
2019-08-22 10:59:31
阅读次数:
118
1 bool dfs(int u) 2 { 3 for (iterator_t i = G[u].begin(); i != G[u].end(); ++i) { // 对 u 的每个邻接点 4 int v = edges[*i].to; 5 if (!check[v]) { // 要求不在交替路中... ...
分类:
编程语言 时间:
2019-08-22 00:34:11
阅读次数:
89
1 #include <cstdio> 2 #include <cstring> 3 #include <queue> 4 #include <vector> 5 #include <algorithm> 6 using namespace std; 7 /*********************... ...
分类:
其他好文 时间:
2019-08-19 14:39:36
阅读次数:
88
思路 题意 :该题主要说几个同学分别说出自己的名次所处区间,最后输出可能存在的未说谎的人数及对应的学生编号,而且要求字典序最大。 思路 :刚刚接触匈牙利算法,了解的还不太清楚,附一个专门讲解匈牙利算法的 " 博文 " ,个人认为讲的比较清晰。 AC代码 c include include inclu ...
分类:
编程语言 时间:
2019-08-17 23:45:33
阅读次数:
127