
二分匹配
文章平均质量分 74
keyboarder_zsq
你所认为的极限,其实是别人的起点。
展开
-
HK算法模板+小优化(跑的快一点点)
HUST 2604#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <queue>#include <cmath>using namespace std;const int N = 300010;const int MAXM = 300010;const int INF =原创 2016-05-13 22:51:02 · 1157 阅读 · 0 评论 -
二分图中的匹配
问题一(未完):考虑n行m列的棋盘,其某些方格禁止落子。能够被放到棋盘上的非攻击型车的最多个数。考虑4行5列的棋盘,其落子位置如下表: y1y2y3y4y5x1 * x2 * *x3* * *x4*原创 2017-03-20 00:56:52 · 327 阅读 · 0 评论 -
POJ3715【二分匹配-增广】
题意:N个人,有两种人,M对亲密关系,问最少删除几个人达到没有亲密关系。思路:最大匹配 = 最小独立集,删掉该人对最大匹配数的影响,如果没有影响,删不删都无所谓,如果有影响贼删除;类似HDU1281;处理可用删除这个点以后找增广,如果找的到增广则无影响,找不到增广则有影响。错误就是二分图,我要删的点有两种,两组点都有可能删除,*单方面删除了一种*。错误在了无意识偏爱原创 2017-02-03 14:39:45 · 472 阅读 · 0 评论 -
HDU2819【二分匹配与矩阵的秩】
题意:给出一个矩阵问能否实现对角线全部是1,能的话输出路径,不能的话输出-1思路:首先根据矩阵的性质,这一定是一个满秩矩阵,所以只根据行或列交换就一定能实现。所以行和列构成二分图,然后跑一发匈牙利就知道行不行。然后怎么输出交换的步骤呢,我们只考虑列交换的话,在对于数组cy[ ]也就是存列的配对对象的数组,对于每个列可以寻找哪个列配对的行是等于他的,因为对角线上行等于列。原创 2017-02-02 20:42:34 · 456 阅读 · 0 评论 -
POJ3692【二分匹配】
题意:有男生女生,男生都认识双方,女生都认识双方,给出一些男女关系,问最大拿多少个人,使得所有人都认识双方。思路:原图最大团=总结点数-[【补图(补图为二分图)】的最大独立集=最大完全子图的顶点数];//#include#include#include#includeusing namespace std;typedef long long LL;const int N=原创 2017-02-10 14:06:44 · 338 阅读 · 0 评论 -
HDU1083 【匹配问题】
题意:有P门课,N个学生,给出每门课上的人。然后问你能不能使得每门课有一个课代表思路:课和学生是两类,且同类之间没有关系,构成二分图;直接就是一个最大匹配问题;注意点:1.是给课进行匹配不是学生2.比如二分图有A,B两类,A与B允许编号相同,但是如果A中的点到B中的点建边,这个意义是A对B有关系,B能去匹配A,这一定不是双向边,双向边就额外多了层关系啊,而且如果原创 2017-01-19 19:50:51 · 422 阅读 · 0 评论 -
HDU3478 【判奇环/二分图的性质】
题意:给你一幅图,给你一个起点,然后问你存不存在一个时刻,所有点可以在那个时刻到达。思路:这幅图首先是联通的;如果出现奇数环,则满足在某一时刻都可能到达;然后判断奇数环用二分图性质搞也是神奇...#includeusing namespace std;#includeusing namespace std;/*题意:使某一时刻到达该图任意顶点:1.图是联原创 2017-01-18 23:34:17 · 955 阅读 · 0 评论 -
HDU2444 【二分图判定+最大匹配】
套模板很好的题?#includeusing namespace std; const int N=2e2+10;const int M=4e4+10;struct asd{ int to; int next;};asd q[M];int head[M],tol;int n,m;int col[N];void add(int u,int v){ q[tol].t原创 2017-01-18 21:13:03 · 420 阅读 · 0 评论 -
HihoCoder 1121二分图一•二分图判定
背景:新年回家,又到了一年一度大龄剩男剩女的相亲时间。Nettle去姑姑家玩的时候看到了一张姑姑写的相亲情况表,上面都是姑姑介绍相亲的剩男剩女们。每行有2个名字,表示这两个人有一场相亲。由于姑姑年龄比较大了记性不是太好,加上相亲的人很多,所以姑姑一时也想不起来其中有些人的性别。因此她拜托我检查一下相亲表里面有没有错误的记录,即是否把两个同性安排了相亲。题意:判定是不是一个二分图(因为我们并原创 2017-01-18 10:36:18 · 592 阅读 · 0 评论 -
POJ3020【二分匹配】
思路:---说给自己一开始想的是从1-h*w标记整幅图,建图是星号和 {他,与他相连的星号} 建边,肯定要去匹配"*"啊,所以空格一定不会去造,然后就理解成了最小点覆盖,然而对于最小点覆盖,对于 孤立点(也就是没有连出去的边) ,这样就错了。。。但是对于这个思路还是打完了,然后发现错了。。。其实对于“正确”思路要先想想是嘛。。。---正解这题题意是一个圈最多只能圈两个" * ",那原创 2016-11-09 21:08:22 · 430 阅读 · 0 评论 -
POJ1466/HDOJ1068 谈谈二分匹配的时间复杂度
题意: n个学生编号是0-n-1,然后给出他们这些人和一些人的关系。 要你找出最大的人数,要求这些人之间没关系。 咳咳,题目中没说性别的关系TVT 思路: 很明显是一个匹配算法,但是我们得搞出一个二分图; 将每个点拆成两个点,一个当作是男的点,一个当作是女的点,匹配一遍,由于关系是相互的,这样就造成了边的重复。也就是边集是刚才的二倍,从而导致了最大匹配变成了二倍。 所以我们要算的 最大原创 2016-05-18 15:04:52 · 666 阅读 · 0 评论 -
HDU 3729【二分匹配】
题意: 给出n个同学的排名,代表每个排名在哪个区间,要求保证最多人说的是实话,并在此前提下求一个说真话人最大字典序。 思路: 最后感觉就是点去填区间,点和区间建个边,然后跑个二分图,然后sort一发。#include<cstdio>#include<vector>#include<string.h>#include<iostream>#include<algorithm>using原创 2016-09-29 00:23:56 · 400 阅读 · 0 评论 -
hdoj1528【二分匹配】
题意: 在一幅扑克牌里,有两个人在比大小,第二个人最多能赢第一个人几张牌。 思路: 这道题目用一下二分匹配还是很明显的。 那么就是建图似乎要麻烦一下,但还是很方便的。将扑克牌一次进行编号,然后牌面比他小的就有一条边。这是一张大的图,两个人的手牌还是要标记一下,因为我们只对取到的牌操作。然后就是在这个范围内跑一跑二分匹配就好了。还是满基础的建图+二分匹配,我都1A了…code:#include原创 2016-06-02 22:34:31 · 576 阅读 · 0 评论 -
二分匹配ZOJ3646
//题意:类比线代里:把矩阵中的U看作【1】,是否满足一个满秩矩阵 //利用二分匹配就是 //每一行都有相对应的列; #include<iostream>#include<string.h>#include<set>#include<queue>#include<sstream>using namespace std;#define N 220char s[N][N];int m原创 2016-05-20 14:09:23 · 568 阅读 · 0 评论 -
poj2239 poj1274【二分匹配】
题意: 就是尽可能的选多的课思路: 把课程和上课的时间看作二分图 跑一跑二分匹配就好了#include<iostream>#include<cstdio>#include<string.h>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f#define N 350int cos[10][20];原创 2016-05-19 16:59:35 · 546 阅读 · 0 评论 -
HDU 2063 过山车+poj 1469
//这是一个非常简单的匹配。其实满感觉这种算法讲道理是可以想到。 //但是我们这种弱就只能先学了匈牙利算法,然后随便嗨这种题目了。没事结果都一样。//这就是匹配算法的DFS形式,有一个BFS形式的,说是适用于稀疏二分图,但是时间复杂度还是(n*m)。。。 //也不是很懂DFS和BFS版有什么差,但是真的有差别,那就上HK算法了,时间复杂度(sqrt(n)*m); #include <iostre原创 2016-05-16 18:21:10 · 494 阅读 · 0 评论 -
hdoj1150(最小点覆盖)
题意: 两台机器,A台机器有N种模式,B台机器有M种不同的模式,初始模式都是0 以及K个需要运行的任务(i,x,y),在A台机器是x模式,在B台机器是y模式。 请合理为每个任务安排一台机器并合理安排顺序, 每个任务要有对应A B机器的模式中至少要有一种来运行 每次切换都会付出代价1,使得代价最小, - -求出这个最小值。思路: 这很明显是有张二分图。 点:A模式,B模式;原创 2016-05-16 22:28:14 · 689 阅读 · 0 评论 -
CodeForces 116B【二分匹配】
思路:暴力。。我不会呀。。YY一个二分匹配嘛,然后数组开小了。GG for an hour.#include using namespace std;typedef long long LL;int cy[110];int cx[110];int n,m;char ma[15][15];int g[15][15];int mma[110][110];int dx[原创 2017-03-20 22:29:16 · 516 阅读 · 0 评论