匹配
图
Joker & Liar
这个作者很懒,什么都没留下…
展开
-
2020牛客多校(第一场)- I.1 or 2
大致题意:有 nnn 个顶点,初始给出 mmm 条边,问能否从中选出一些边使得构成的图的所有顶点的度 degreeidegree_idegreei 满足 degreei=di (1≤di≤2)degree_i=d_i~(1 \leq d_i \leq 2)degreei=di (1≤di≤2) ,ddd 数组事先给出;分析:根据 ddd 数组的范围,把 di=2d_i=2di=2 的点拆成两个点,这样每个点只需要匹配一条边,就变成了一般图最大匹配;此外因为给出的边是按照原原创 2020-07-26 00:47:45 · 199 阅读 · 0 评论 -
POJ - 2289(二分+匈牙利)
题意: 把 N 个人分成 M 组,给出 N 个人各自可选的组别集合,求一种合法的分配方案,使得人数最多的组的人数最少分析: 最多最少,一般二分跑不了,然后求分配就匈牙利稍微变形就可以了(变形是为了适应二分)代码:#include<vector>#include<string>#include<cstring>#include<iostream>using namespace std;#define pb push_back#define re原创 2020-05-17 23:33:26 · 163 阅读 · 0 评论 -
HDU - 2819(Swap)
题意: 给定 N×NN \times NN×N 的 010101矩阵,问这个矩阵是否可以经过若干次行置换和列置换使得它主对角线上的元素都为 111 ,无解则输出 −1-1−1 ,否则输出具体置换方案;分析: 对于需要若干次行置换和列置换达到的操作,我们肯定可以只选择 行置换 或者 列置换 达到,我们假设只进行 行置换,则按照 010101矩阵 分行列构成二分图求最大匹配,有解的情况即最大匹配为 n;代码:#include<bits/stdc++.h>using namespace std原创 2020-05-14 15:08:43 · 154 阅读 · 0 评论 -
HDU - 2444(The Accomodation of Students)
题意: 有 n 个学生,给出 m 对 (ui,vi)(u_i,v_i)(ui,vi),表示两个学生互相认识,现在要求把 这 n 个学生分成两组,要求组内的人互不相识,若无法分组输出 -1 ;否则,然后每次从两组中各选一人组成一对,要求这两人互相认识,问最多可以组成几对;分析: 分组,就是把 n 个学生根据 m 对相识关系构成二分图;然后选人组队,就是求二分图最大匹配,所以用匈牙利算法解决;判断可不可以分组可以用BFS队列解决;代码:#include<bits/stdc++.h>usi原创 2020-05-13 13:49:21 · 116 阅读 · 0 评论 -
HDU-1853(Cyclic Tour)
题意:给定一个 N个点的带权有向图,现在求所有顶点都被一个或多个不相交的有向环覆盖,求这些有向环的权值和,并找到最优的覆盖方法使得权值和最小。分析:由题意可知是二分匹配问题,而最优的有向环覆盖对应了二分图的完备匹配代码:#include<cstdio>#include<cstring>#include<iostream>#inc...原创 2019-12-05 17:39:06 · 176 阅读 · 0 评论 -
HDU-2813(One fihgt one)
题意:吕布有 n 个武将 对战 曹操 m 个武将 (n<=m),并给出 k 个对战的战力损耗值,求吕布方的最优战对匹配,使得战力损耗值最小,只能一对一。分析:KM匹配裸题,名字用map标序就行了代码:#include<map>#include<cmath>#include<cstdio>#include<string&...原创 2019-12-04 22:46:59 · 183 阅读 · 0 评论 -
HDU-2282(Chocolate)
题意:N 个 盒子构成一个环,初始时有 n 个巧克力放在这些盒子中(n<=N),每个巧克力的初始位置会给出,一次可以把一个巧克力移动到相邻的盒子中,求最少的移动次数使得一个盒子至多只有一个巧克力分析:KM匹配裸题,给出的初始数据是第 i 个盒子里有几块巧克力,注意转换一下就可以了。代码:#include<cmath>#include<cstdio...原创 2019-12-04 12:17:18 · 294 阅读 · 0 评论 -
HDU_3395(Special Fish)
题意:给出 n 条鱼,每条鱼有个属性值,当一条鱼攻击另一条鱼时,会生出两条鱼属性值异或出的结果数量的小鱼,每条鱼可以攻击至多一次,且给出一个 n x n 的 01 矩阵图,当且仅当坐标 (i,j)==1 时 第 i 条鱼可以攻击第 j 条鱼,求最大的攻击分配,使得小鱼生成最多。分析:KM分配裸题。代码:#include<cstdio>#include<...原创 2019-12-03 21:15:10 · 127 阅读 · 0 评论 -
HDU-2426(Interesting Housing Problem)
题意:有 n 个学生,m 个房间,给定一些某学生对某房的喜欢度,找一个最优方案使得每个学生分配一个房间,并且使得喜欢度最大分析:KM匹配裸题,注意给出的喜欢度可能为负,但学生不会住喜欢度为负的房间,所以要忽略。代码:#include<cmath>#include<cstdio>#include<cstring>#include&l...原创 2019-12-03 20:49:26 · 180 阅读 · 0 评论 -
HDU-1533(Going Home)
题意:给你一个 r x c 的矩阵,矩阵中有若干数学等同的人和房子,每一个人走到一个房子的距离即是消耗值,求给每个人匹配一个房子的最小消耗值。分析:KM匹配裸题,不过KM求最大,所以对于一个人到一个房子的消耗值dis,我们设dis=K-dis 就行了,这样求出来的最大就满足最小。代码:#include<cmath>#include<cstdio>...原创 2019-12-03 17:20:57 · 154 阅读 · 0 评论 -
HDU-2255(奔小康赚大钱)
题面:传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子。这可是一件大事,关系到人民的住房问题啊。村里共有n间房间,刚好有n家老百姓,考虑到每家都要有房住(如果有老百姓没房子住的话,容易引起不安定因素),每家必须分配到一间房子且只能得到一间房子。另一方面,村长和另外的村领导希望得到最大的效益,这样村里的机构才会有钱.由于老百姓都比较富裕,他们都能对每一间房子在...原创 2019-12-03 17:12:45 · 118 阅读 · 0 评论