
二分图
ramay7
Life is not short,but float.
展开
-
HDU 2063 过山车
参考博文1参考博文2参考博文3过山车Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15622 Accepted Submission(s): 6852Problem Descrip原创 2015-12-08 09:17:45 · 516 阅读 · 0 评论 -
POJ 3686 The Windy's(拆点、最小权匹配)
题目链接: POJ 3686 The Windy’s 题意: 有m个作坊和n件物品,给出每件商品在每个作坊加工完成的时间,求出加工完n件商品的最少平均时间。每件商品只能在一个作坊完成,每个作坊同一时间只能加工一件商品,每件商品的完成时间需要加上它的等待时间。 分析: 假设一个作坊最终加工k件商品,加工顺序依次是从1到k,则在该作坊加工的商品的总耗时是: cost[1] + (cost[原创 2016-05-16 01:38:00 · 378 阅读 · 0 评论 -
POJ 2195 Going Home(最小权匹配、KM算法)
题目链接: POJ 2195 Going Home 题意: 给出一个r*c的矩阵,字母H代表房屋,字母m代表客人,房屋的数量和客人的数量相同。每间房只能住一个人。求这些客人全部住进客房的最少移动步数?#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <string>#incl原创 2016-05-04 20:29:52 · 504 阅读 · 0 评论 -
HDU 2389 Rain on your Parade(Hopcroft_Carp Algorithm)
题目链接: HDU 2389 Rain on your Parade#include <cstdio>#include <cstring>#include <cmath>#include <iostream>#include <string>#include <algorithm>#include <climits>#include <queue>using namespace原创 2016-05-04 16:33:59 · 382 阅读 · 0 评论 -
POJ 2226 Muddy Fields(最小点覆盖)
题目链接: POJ 2226 Muddy Fields 题意: 和POJ 3041 类似。只不过每次只可以清除一列或一行中连续的点,问最少的清除次数。 分析: 不再将每行和每列看成二分图的点,而是将一行中连续的点和一列中连续的点看成二分图的点,建好图下面就是套路了。#include <iostream>#include <cstdio>#include <cstring>#inclu原创 2016-05-03 20:58:47 · 382 阅读 · 0 评论 -
POJ 3041 Asteroids(最小点覆盖)
题目链接: POJ 3041 Asteroids 题意: 给出m个点的所在行列,每次可以选择清除一行或者一列,问清除这些点的最小操作次数是多少? 分析: 将所有点的行看成一组,所有的点列看成一组,对每个点的行和列建一条边,每条边就代表一个点,清除一行或者一列可以看成选择二分图中的一个点,清除所有的点,就相当于选择二分图中的若干点连接所有的边。 这样一来就符合最小点覆盖的定义了!再根据最小原创 2016-05-03 20:06:17 · 402 阅读 · 0 评论 -
UVALive 11383 - Golden Tiger Claw(最小权匹配)
题目链接: UVALive 11383 - Golden Tiger Claw 题意: 给出一个n*n的矩阵,需要对每行和每列定义行值row[i]和列值col[j],使得对于矩阵中任意一个数值w[i][j]满足row[i] + col[j] >= w[i][j],求满足条件的行值和列值满足sigma(row[i] + col[i]) (1<=i<=n)最小. 先在一行输出所有的行值row[原创 2016-05-14 03:28:44 · 364 阅读 · 0 评论 -
UVALive 3989 - Ladies' Choice(稳定婚姻匹配)
题目链接: UVALive 3989 - Ladies’ Choice 题意: 有n对男女,先给出每个女生对n位男生的选择意向,排在前面的优先选择,然后给出n位男生的选择意向,排在前面的优先选择. 输出每位女生的匹配,使得每位女生都是稳定的最佳选择./*下面算法中存储女生的选择意向时有两种选择:队列和数组.把注释部分去掉//即是队列写法.*/#include <iostream>#i原创 2016-05-14 03:34:50 · 473 阅读 · 0 评论 -
UVALive 4043 Ants(最大权匹配)
题目链接: UVALive 4043 Ants 题意: 给出平面上n个白点和n个黑点的点坐标,将这n个白点和n个黑点用n条不相交的线段连接,输出每个白点连接的黑点的编号. n<=100. 分析: 假设有两个白点a1,a2和两个黑点b1,b2,且当前匹配为a1-b1,a2-b2.如果线段a1-b1和线段a2-b2相交, 可以得到距离关系dis(a1, b1) + dis(a2, b2)原创 2016-05-14 03:32:47 · 455 阅读 · 0 评论 -
UVALive 3415 Guardian of Decency(最大独立集)
题目链接: UVALive 3415 Guardian of Decency 题意: 刘汝佳的大白书P356页上的题目. 最大独立集.#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <climits>#include <cma原创 2016-05-14 03:31:17 · 456 阅读 · 0 评论 -
UVALive 11419 SAM I AM (最小点覆盖输出)
题目链接: UVALive 11419 SAM I AM 题意: 在一个R*C的网格上放了一些目标.可以在网格外发射子弹,子弹会沿着垂直或者水平方向飞行,并打掉飞行路径上的所有目标. 计算最少需要多少子弹,各从哪些位置发射,才能把所有目标全部打掉. 输入第一行为R,C,N(R,C<=1000,N <= 100000)表示网格的大小和目标个数.接下来N行每行包含两个正数r[i]和c[i]原创 2016-05-14 03:30:04 · 460 阅读 · 0 评论 -
HDU 4619 Warm up 2(最大独立集)
题目链接: HDU 4619 Warm up 2 题意: 有n个水平方向放置和m个竖直方向放置的骨牌,这些骨牌在各自的方向上不会重叠,但是水平向上和竖直方向上的骨牌可能互相重叠,重叠的骨牌只能保留一个,问最多可以留下多少骨牌? 分析: 把每个纸牌看成一个点,将水平方向和竖直方向重叠的纸牌建边使其相邻,题意即保留最多的点使得两两不相邻,这就是最大独立集啊.最大独立集 = 顶点数 - 最大匹配原创 2016-05-14 03:19:31 · 656 阅读 · 0 评论 -
POJ 2594 Treasure Exploration(最小路径数变形)
题目链接: POJ 2594 Treasure Exploration 题意: 允许顶点多条路径经过的最小路径数。 分析: 用Floyd算法将所有间接连通点都变为直接连通,再用匈牙利算法求最大匹配,继而得出最小路径数。#include <cstring>#include <cmath>#include <algorithm>#include <cstdio>using namesp原创 2016-05-02 16:28:12 · 445 阅读 · 0 评论 -
POJ 2060 Taxi Cab Scheme(最小路径覆盖)
题目链接: POJ 2060 Taxi Cab Scheme 分析: 最小路径覆盖=顶点数-最大匹配数。#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int MAX_N=510;int T,n,total;int st[MAX_N],e原创 2016-05-02 16:25:01 · 411 阅读 · 0 评论 -
HDU 2444 The Accomodation of Students(判断是否是二分图及求最大匹配)
题目链接: HDU 2444 The Accomodation of Students 分析: 用BFS判断二分图,用匈牙利算法求最大匹配。#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>#include <string>#include <queue原创 2016-05-02 16:21:56 · 446 阅读 · 0 评论 -
POJ 1486 Sorting Slides(判断所有唯一匹配)
题目链接: POJ 1486 Sorting Slides 题意: 有n张ppt和n个数字,每个数字代表页数,给出每张ppt的位置和页数的位置,每张ppt上都会有一个页数, 问最多能确定多少张ppt和页数一一对应,输出相应的ppt和页数。 分析: 先求出最大匹配totaltotal和相应的匹配方案。然后依次尝试删除匹配方案中的每条边,再求删除边后的最大匹配res,如果res<totalr原创 2016-04-25 22:31:21 · 625 阅读 · 0 评论 -
POJ 1466 Girls and Boys(最大独立点集)
题目链接: POJ 1466 Girls and Boys 题意: 有n位学生,每位学生会和其他学生有“浪漫关系”,找到一个最大集合使得集合中的学生任意两个都不存在浪漫关系。 分析: 最大独立点集。有公式: 最大独立点集=点数量-最大匹配数 这题输入有毒。 每行的开始不一定是0,1,2,3…依次输入,太尴尬了!#include <iostream>#include <cstdio>原创 2016-04-25 21:03:54 · 511 阅读 · 0 评论 -
URAL 1997 Those are not the droids you're looking for(二分图)
题目链接: URAL 1997 Those are not the droids you’re looking for 题意: 给出一间酒吧的n个进出记录,判断进出这间酒吧的所有人是不是只属于这两种: ①:待在酒吧的时间不少于a ②:待在酒吧的时间至多为b 如果存在一种方案使得根据这n个进出记录的到的所有人都属于这两种人输出每个人的进出时间。否则输出”Liar”。 分析: 二分图匹配原创 2016-05-19 01:15:13 · 461 阅读 · 0 评论