题目大意: 有电器和配套的插座,以及每种无限个的装换插头 问:最少多少电器用不上电? 画画图,可以知道是一个二分图,中间结点需要用传递闭包优化掉 Floyd+匈牙利算法(二分图匹配) 1 #include<map> 2 #include<cmath> 3 #include<queue> 4 #inc ...
分类:
其他好文 时间:
2021-07-02 15:43:27
阅读次数:
0
1二分图最大匹配 在一张二分图中选出最多的边,使得边两两不相交。 2求解 2.1匈牙利算法 即不断地尝试匹配,有人抢就放弃的算法。 #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cst ...
分类:
其他好文 时间:
2021-04-12 12:41:05
阅读次数:
0
本文讲述的是匈牙利算法,即图论中寻找最大匹配的算法,暂不考虑加权的最大匹配(用KM算法实现),文章整体结构如下: 基础概念介绍 算法的实现 好的,开始! 一. 部分基础概念的介绍 我会严格介绍其定义,并同时用自己的大白话来重述。 概念点1. 图G的一个匹配是由一组没有公共端点的不是圈的边构成的集合。 ...
分类:
编程语言 时间:
2020-09-17 13:17:00
阅读次数:
30
匈牙利(Hungarian)算法-二分图的最大匹配问题 首先是一个小的讲解视频 上述视频涉及到的一个打卡题目杭电OJ-2063-过山车 我的代码如下:(下面的代码同视频里的稍有不同,或者说是男女正好相反吧) #include<bits/stdc++.h> using namespace std; c ...
分类:
编程语言 时间:
2020-08-03 23:12:35
阅读次数:
63
步骤: 1.首先要找到所有居民愿意花钱最多的 那个房子。 题目中用到lx,ly数组,是为了同时调节两个数组,使得权值和最大。 或者说当要松弛的时候使得 本来最大的矛盾权值和 尽可能的损失小一些来得到 满足条件的最大权值和! 2.(lx[x]+ly[y]-w[x][y]=0)条件下进行匈牙利算法。 # ...
分类:
其他好文 时间:
2020-07-27 09:27:42
阅读次数:
64
知识点简单总结——带花树(一般图最大匹配) 前置知识 二分图最大匹配(匈牙利算法) 一般图最大匹配 首先思考一下一般图和二分图的区别在哪里。 很明显二分图没有奇环。 那么只要能处理好奇环的结果就好。 首先像匈牙利算法一样每次选择一个点开始匹配并进行一次新的黑白染色,起点为黑色。 进行bfs,用队列处 ...
分类:
其他好文 时间:
2020-07-23 15:45:31
阅读次数:
74
带花树算法大概就是解决一般图的最大匹配 回顾匈牙利算法解决二分图匹配 我们每次增广左侧的a,其实是找到与它有边相连的右侧的一个点b 看b是否在匹配中,如果不在那么增广成功 如果在那么就增广b的匹配点c看是否成功 但我们发现这是因为我们把点集分成两个内部无交的点集才可以这么做 但是对于一般图是不满足这 ...
分类:
编程语言 时间:
2020-07-16 00:19:40
阅读次数:
74
二分图最大匹配: 匈牙利算法 邻接表O(mn): #pragma GCC optimize(2) #include <bits/stdc++.h> using namespace std; const int maxn = 1010; const int maxm = 2e5; int n, m, ...
分类:
其他好文 时间:
2020-07-14 21:42:51
阅读次数:
67
一. 预备知识 1. 匹配:图G=(V,E)中没有公共端点的一组边M 匹配边:M中的边 ? 自由边:E/M中的边 被浸润的顶点:M中边的端点 ? 未被浸润的顶点:其他顶点 完美匹配:浸润G的个顶点的匹配 最大匹配:边的条数达到最大值的匹配 推论:完美匹配一定是最大匹配,反之未必 2. 顶点覆盖:图G ...
分类:
其他好文 时间:
2020-06-22 17:04:42
阅读次数:
55
很经典的题,但是好久没做这类有点忘了。。 经典状压dp做法:用S表示一行的状态,某位为1表示该位被占用,反之表示该位未被占用 dp[i][S]表示第i行状态为S时的最大覆盖数,那么枚举第i-1行的状态S',如果S,S'都合法,那么此时可以求出S状态下最多可以放多少块砖 预处理出cnt[S1][S2] ...
分类:
其他好文 时间:
2020-06-03 20:09:06
阅读次数:
61