棋盘游戏---hdu1281(最大匹配)
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define N 110 int maps[N][N], vis[N], used[N], n, m, k, ans, ans0;
struct node
{
int x,y;
}a[N*N];///注意k的取值范围,wa了一次;
bool Find(int u)
{
for(int i=; i<=m; i++)
{
if(!vis[i] && maps[u][i])
{
vis[i] = ;
if(!used[i] || Find(used[i]))
{
used[i] = u;
return true;
}
}
}
return false;
} int main()
{
int t = , x, y;
while(scanf("%d%d%d", &n, &m, &k)!=EOF)
{
ans = ans0 = ;
memset(used, , sizeof(used));
memset(maps, , sizeof(maps));
for(int i=; i<=k; i++)
{
scanf("%d%d", &x, &y);
a[i].x = x;
a[i].y = y;
maps[x][y] = ;
}
for(int i=; i<=n; i++)
{
memset(vis, , sizeof(vis));
if(Find(i))
ans++;
}
for(int i=; i<=k; i++)
{
int kk=;
memset(used, , sizeof(used));
x=a[i].x;
y=a[i].y;
maps[x][y] = ;
for(int j=; j<=n; j++)
{
memset(vis, , sizeof(vis));
if(Find(j))
kk++;
}
if(kk<ans)
ans0++;
maps[x][y] = ;
}
printf("Board %d have %d important blanks for %d chessmen.\n", t++, ans0, ans);
}
return ;
}
棋盘游戏---hdu1281(最大匹配)的更多相关文章
- HDU1281 棋盘游戏 —— 二分图最大匹配 + 枚举
题目链接:https://vjudge.net/problem/HDU-1281 棋盘游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit ...
- hdu1281 棋盘游戏 二分图最大匹配
小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单,但是Gardon限制了只有某些格子才可以放,小希还是很轻松的解决 ...
- HDU 1281——棋盘游戏——————【最大匹配、枚举删点、邻接表方式】
棋盘游戏 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- HDU 1281 棋盘游戏 (枚举+最大匹配)
<题目链接> Problem Description 小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单 ...
- 棋盘游戏 HDU1281
一开始毫无思路 看了题解才发现是二分图的最大匹配问题 行为n 列为m 行列匹配 (一行只能与一列匹配 这点和象棋的车的意义一样) 再去掉点看看最大匹配会不会少 如果少了说明为关键点 其中 ...
- HDU 1281 - 棋盘游戏 - [二分图最大匹配]
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1281 Time Limit: 2000/1000 MS (Java/Others) Mem ...
- hdu1281 棋盘游戏 --- 最大匹配
给一个矩形棋盘,上面有一些空格点,能够放象棋中的"车", 现给出空格的坐标,求最多能够放多少个"车"使他们互不攻击(依据象棋规则,每行每列至多仅仅能放一个), ...
- hdu-1281.棋盘游戏(二分图匹配 + 二分图关键点查询)
棋盘游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- hdu------1281 棋盘游戏(最小覆盖点)
棋盘游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
随机推荐
- CentOS下rpm指令和yum指令详解
centos的软件安装大致可以分为两种类型: [centos]rpm文件安装,使用rpm指令 类似[ubuntu]deb文件安装,使用dpkg指令 [centos]yum安装 类似[ubuntu]ap ...
- mysql获取外键, 根据数据库名和表名获取表所对应的所有外键
SELECT ii.`COLUMN_NAME` FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS ii WHERE ii.`CONSTRAINT_SCHEMA`= ...
- Oracle查询优化--单表查询
--查询所有 select * from emp; select * from emp where comm is null; --错误表达 --select * from emp where com ...
- 学习 TList 类的实现[4]
现在准备一步步地模拟 TList 类, 建立一个自己的 TMyList. 首先, 这个类中应该包括前面提到的那个 Pointer 数组(TPointerList)的指针(PPointerList): ...
- win7笔记本电脑怎么做wifi热点
win7设置wifi热点后非常方便,可以给其他笔记本和手机之类支持无线上网的移动设备使用,接下来请看超简单的详细设置方法. 方法/步骤 1 第一步先打开“控制面板” 2 点击“网络和Internet” ...
- 【matlab】error:试图访问 im2(1,1211);由于 size(im2)=[675,1210],索引超出范围。
试图访问 im2(1,1211):由于 size(im2)=[675,1210],索引超出范围. 出错 dect (line 14) if abs((im2(i,j))-(im1(i,j)))> ...
- 编译OSG的FreeType插件时注意的问题
使用自己编译的freetype.lib,在编译osgdb_freetype插件项目时,报错LINK错误,找不到png的一堆函数 最简单的方式是不要使用PNG编译freetype.记住不要犯贱.
- C++异常 返回错误码
一种比异常终止更灵活的方法是,使用函数的返回值来指出问题.例如,ostream类的get(void)成员ASCII码,但到达文件尾时,将返回特殊值EOF.对hmean()来说,这种方法不管用.任何树脂 ...
- LLDB调试器
你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThisThing); 或者跳过一个函数调用来简化程序的行为? NSNu ...
- 使用Sublime Text 3做Python开发
引言 刚转到OS X平台时,寻找写Python,JavaScript,Markdown等文件的工具时,比较了许多工具, 最终选择了Sublime Text 2,主要原因是其跨平台, 想着以后再转到wi ...