Just Oj 2017C语言程序设计竞赛高级组E: DATE ALIVE(二分匹配)
E: DATE ALIVE
时间限制: 1 s 内存限制: 128 MB
提交 我的状态
题目描述
五河士道家里的精灵越来越多了,而每一个精灵都想和他有一个约会。然而五河士道却只有一个,无奈之下只能使出分身帮自己解围。
不过并不是所有的精灵都同意这样做,有些精灵不愿意和士道分身进行约会,也有部分精灵同时选择同一个分身进行约会。
假设有N个分身,精灵的数量为M,可能的约会组合有K组。
设N=3,M=5,K=5,可能的组合为1-1,1-3,2-4,3-4,3-5(如下图),为了避免冲突,我们最多可以选择1-1,2-4,3-5一共三种组合(或者是1-3,2-4,3-5)
那么请设计一个程序判断每一次可能的组队最多能确定多少队伍?最后,让我们的约会开始吧~
输入
输入N,M,K
N,M,K为正整数
1<=N<=500
1<=M<=500
接下来K行,输入u,v,表示uv之间愿意组队
u在N的范围内,v在M的范围内
输出
输出最大组队数目
样例输入
3 5 5
1 1
1 3
2 4
3 4
3 5
样例输出
3
题意:求最多可以匹配多少个道士;
分析:可以用匈牙利算法解决:枚举道士,找出匹配的精灵,若该精灵已经匹配,则判断是否可以让原配换一个精灵;
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
bool link[505][505];//判断两结点是否连接
bool used[505];//是否被访问过
int fa[505];//所配道士
int m;
bool find(int x)
{
for(int i=1;i<=m;i++){
if(link[x][i]&&!used[i]){
used[i]=1;
if(!fa[i]||find(fa[i])){//i无原配或者原配可以让出i换一个精灵
fa[i]=x;
return 1;
}
}
}
return 0;
}
int main()
{
int n,k;
scanf("%d%d%d", &n,&m,&k);
while(k--){
int x,y;
scanf("%d%d",&x,&y);
link[x][y]=1;//两点可以连接
}
int cnt=0;
for(int i=1;i<=n;i++){
memset(used,0,sizeof(used));//好几次忘了这个
if(find(i))
cnt++;
}
printf("%d\n",cnt);
return 0;
}
Just Oj 2017C语言程序设计竞赛高级组E: DATE ALIVE(二分匹配)的更多相关文章
- Just Oj 2017C语言程序设计竞赛高级组A: 求近似值(矩阵快速幂)
A: 求近似值 时间限制: 1 s 内存限制: 128 MB 提交 我的状态 题目描述 求⌊(5–√+6–√)2n⌋⌊(5+6)2n⌋%9932017. 例如:n=1,(5–√+6–√)2( ...
- Just Oj 2017C语言程序设计竞赛高级组D: 字符串最大表示(next数组)
D: 字符串最大表示 时间限制: 1 s 内存限制: 128 MB 题目描述 有如下定义,abcnabcn表示字符串abc重复n次,例如abc2abc2表示abcabc. 给定一个字符串,求 ...
- 2014江西理工大学C语言程序设计竞赛高级组题解
1001 Beautiful Palindrome Number 枚举回文数字前半部分,然后判断该数字是否满足,复杂度为O(sqrt(n))! 1002 Recovery Sequence 本题的核 ...
- 2017年江西理工大学C语言程序设计竞赛(高级组)
问题 A: 求近似值 #include <stdio.h> #include <time.h> #include <stdlib.h> using namespac ...
- 2018年江西理工大学C语言程序设计竞赛(高级组) 三角平方数
题目描述 三角数:形如图a,圆点摆放成等边三角形的数字,则为三角数. (图a) 平方数:形如图b,小方块摆放成正方形的数字,则为平方数. (图b) 那么如果一个数字既是三角形数又是平方数,则称为三角平 ...
- 2018年江西理工大学C语言程序设计竞赛高级组部分题解
B Interesting paths 考察范围:组合数学 此题是机器人走方格的变种,n*m的网格,从(1,1)走到(n,m),首先可以明确,水平要走m-1格,竖直要走n-1格,则走到目的地的任意一条 ...
- 2018年江西理工大学C语言程序设计竞赛(初级组)一
C语言竞赛初级组第一.二场答案:https://www.cnblogs.com/xingkongyihao/p/10046918.html A: 逆序对 时间限制: 1 s 内存限制: ...
- 2014江西理工大学C语言程序竞赛高级组
Beautiful Palindrome Number 题意:求N里面有多少个符合要求的数字(数字要求:回文数,且前一半部分是不严格递增) 解法:打表 #include<bits/stdc++. ...
- 2017年江西理工大学C语言程序设计竞赛(初级组)
问题 A: Petr的盒子(初) #include <iostream> #include <stdio.h> #include <algorithm> using ...
随机推荐
- oracle-----视图/物化视图
什么是视图 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的. 视图只有逻辑定义.每次使用的时候,只是重新执行SQL. 视图是从一个或多个 ...
- C# 事务 四种事务隔离级别
http://www.zsythink.net/archives/1233 不同隔离级别的问题 脏读(Dirty Read) 一个事务处理过程里读取了另一个未提交的事务中的数据 例子: 当一个事务 ...
- css模拟时钟
css模拟时钟 思路: 画时钟数字(x,y)坐标 x = x0 + r*cos(deg) y = y0 + r*sin(deg) 知识点: 创建元素: createElement 添加元素: appe ...
- FireDac 的一些应用提示
FireDac 的一些应用提示: 1. 客户端 dataset 能用 TFDQuery 连接 dataset provider 获取数据 ? Can I use TFDQuery and conne ...
- python用WMI模块获取系统命名空间
可以和winmgmts的查询页面对应 from win32com.client import GetObject import pywintypes result=[] def enum_namesp ...
- python获取windows信息
转载自http://www.blog.pythonlibrary.org/2010/02/06/more-windows-system-information-with-python/ How to ...
- JDK的安装及环境变量配置
JDK的安装及环境变量配置 JDK解释:直达详细解释. 1.JDK下载地址:点击直达官网下载 进入后,如图1,点击图中红框DOWNLOAD按钮进入下载页 进入下载页后,在下载也底端,根据自己的需求下载 ...
- Codeforces 1107G Vasya and Maximum Profit [单调栈]
洛谷 Codeforces 我竟然能在有生之年踩标算. 思路 首先考虑暴力:枚举左右端点直接计算. 考虑记录\(sum_x=\sum_{i=1}^x c_i\),设选\([l,r]\)时那个奇怪东西的 ...
- swift 学习- 27 -- 访问控制
// 访问控制 可以限定其源文件 或模块中的代码对你的代码的访问级别, 这个特性可以让我们隐藏代码的一些实现细节, 并且可以为其他人可以访问和使用的代码提供接口 // 你可以明确地给某个类型 (类, ...
- FTP判断ftp上是否有文件目录,没有就创建的具体案例
/// <summary> /// 判断ftp上是否有指定的文件目录,没有创建 /// </summary> /// <param name="ftpPath& ...