hdu 1281 棋盘游戏 (二分匹配)
//是象棋里的车 符合二分匹配
# include<stdio.h>
# include<algorithm>
# include<string.h>
using namespace std;
int n,m,pp[110][110],map[110],vis[110];
int bfs(int x)
{
for(int i=1;i<=m;i++)
{
if(!vis[i]&&pp[x][i])
{
vis[i]=1;
if(!map[i]||bfs(map[i]))
{
map[i]=x;
return 1;
}
}
}
return 0;
}
int f()
{
int a=0;
memset(map,0,sizeof(map));
for(int i=1;i<=n;i++)
{
memset(vis,0,sizeof(vis));
if(bfs(i))
a++;
}
return a;
}
int main()
{
int i,j,k,cot1=0,ans,a,b;
while(~scanf("%d%d%d",&n,&m,&k))
{
memset(pp,0,sizeof(pp));
for(i=0;i<k;i++)
{
scanf("%d%d",&a,&b);
pp[a][b]=1;
}
int cot=f();
ans=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(pp[i][j])//推断是否为重要点
{
pp[i][j]=0;
if(f()<cot)
ans++;
pp[i][j]=1; }
}
}
printf("Board %d have %d important blanks for %d chessmen.\n",++cot1,ans,cot);
}
return 0;
}
hdu 1281 棋盘游戏 (二分匹配)的更多相关文章
- hdu 1281棋盘游戏(二分匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1281 Problem Description 小希和Gardon在玩一个游戏:对一个N*M的棋盘, ...
- hdu 1281 棋盘游戏 (二分匹配)
棋盘游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- hdu 1281 棋盘游戏(二分匹配)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1281 棋盘游戏 Time Limit: 2000/1000 MS (Java/Others) M ...
- HDU 1281——棋盘游戏——————【最大匹配、枚举删点、邻接表方式】
棋盘游戏 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- hdu 1281 棋盘游戏
http://acm.hdu.edu.cn/showproblem.php?pid=1281 棋盘游戏 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- HDU 3468 BFS+二分匹配
九野的博客,转载请注明出处 http://blog.csdn.net/acmmmm/article/details/10966383 开始建图打搓了,参考了大牛的题解打的版本比较清爽,后来改的基本雷同 ...
- HDU 2819 Swap (二分匹配+破输出)
题意:给定上一个01矩阵,让你变成一个对角全是 1 的矩阵. 析:二分匹配,把行和列看成两个集合,用匈牙利算法就可以解决,主要是在输出解,在比赛时一紧张不知道怎么输出了. 输出应该是要把 match[ ...
- D - 棋盘游戏 - HDU 1281(二分图匹配)
分析:先求出来最大匹配数,然后用匹配的点一个一个去除看看能否达到最大匹配,能的话就是关键点(很暴力啊),不过竟然才31ms ************************************** ...
- (step6.3.5)hdu 1281(棋盘游戏——二分图的完美匹配)
题目大意:本体是中文题.读者可以直接在OJ上看 解题思路: 1)完美匹配:所有的端点都是匹配点 2)对于二分图的完美匹配,我们需要用一个数组来存储匹配点.(而二分图的其他问题(我们则可以直接使用变量来 ...
随机推荐
- android studio - 解决Android Studio不停的Indexing的问题
File > Invalidate Caches/Restart
- 中间件监控之tomcat
中间件主要目的:能够支持更多人去访问 一.Tomcat 介绍 Tomcat 是一个小型的轻量级应用服务器,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP页面和Serv ...
- vue自动化单元测试
// 引用vue和需要测试的组件 import Vue from 'vue' import HelloWorld from '@/components/HelloWorld' // 创建测试套件,一个 ...
- PeekMessage、GetMessage的区别
在Windows编程中经常使用这两个函数来处理消息,它们之间的区别就是GetMessage是阻塞的,PeekMessage是非阻塞的. GetMessage原型如下:BOOL GetMessage(L ...
- linux没有那个文件或目录
linux脚本执行 报错 没有那个文件或目录 但是ls 看一下,明明有文件 原因: vim filename然后用命令 :set ff可看到dos或unix的字样,如果的确是dos格式的, 那么用se ...
- js判断字符是否存在汉字的方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 海量数据mysql优化步骤
第一优化你的sql和索引: 第二加缓存,memcached,redis: 第三以上都做了后,还是慢,就做主从复制或主主复制,读写分离,可以在应用层做,效率高,也可以用三方工具,第三方工具推荐360的a ...
- JS地毯式学习四
1 窗口的位置 用来确定和修改 window 对象位置的属性和方法有很多. IE . Safari . Opera 和 Chrome都提供了 screenLeft 和 screenTop 属性,分别 ...
- C#基础-获得当前程序的 空间名.类名.方法名
string typeName = this.GetType().ToString();//空间名.类名 string typeName = this.GetType().Name;//类名 new ...
- 【Unity笔记】屏幕坐标和鼠标坐标
屏幕坐标:左下角为原点. void Update(){ // 获取物体的屏幕坐标,世界坐标->屏幕坐标 Vector3 screenPos = Camera.main.WorldToScreen ...