hdu4185 Oil Skimming(偶匹配)
<span style="font-family: Arial; font-size: 14.3999996185303px; line-height: 26px;">//题意,在一个N*N的矩阵里寻找最多有多少个</span><span style="font-size: 14px; line-height: 26px; font-family: 'Courier New', Courier, monospace; white-space: pre;">“</span><span style="font-size: 14px; line-height: 26px; font-family: 'Courier New', Courier, monospace; white-space: pre;">##”(横着竖着都行)。 </span>
# include <stdio.h>
# include <algorithm>
# include <string.h>
using namespace std;
int n,cot;
int map[660],vis[660],pp[660][660],u[660][660];
int bfs(int x)
{
for(int i=1;i<=cot;i++)
{
if(!vis[i]&&pp[x][i])
{
vis[i]=1;
if(!map[i]||bfs(map[i]))
{
map[i]=x;
return 1;
}
}
}
return 0;
}
void judge(int x,int y)
{
if(x<n-1&&u[x+1][y])
pp[u[x][y]][u[x+1][y]]=pp[u[x+1][y]][u[x][y]]=1;//相连的“#”标记
if(y<n-1&&u[x][y+1])
pp[u[x][y]][u[x][y+1]]=pp[u[x][y+1]][u[x][y]]=1;
}
int main()
{
int t,cas,i,j;
char a[660][660];
while(~scanf("%d",&t))
{
cas=0;
while(t--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s",a[i]);
memset(u,0,sizeof(u));
cot=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]=='#')
u[i][j]=++cot;//为“#”标记
}
}
memset(pp,0,sizeof(pp));
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(u[i][j])
{
judge(i,j);
}
}
}
int res=0;
memset(map,0,sizeof(map));
for(i=1;i<=cot;i++)//一共1到cot个油田
{
memset(vis,0,sizeof(vis));
if(bfs(i))
res++;
}
printf("Case %d: %d\n",++cas,res/2);
}
}
return 0;
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
hdu4185 Oil Skimming(偶匹配)的更多相关文章
- HDU4185 Oil Skimming 二分图匹配 匈牙利算法
原文链接http://www.cnblogs.com/zhouzhendong/p/8231146.html 题目传送门 - HDU4185 题意概括 每次恰好覆盖相邻的两个#,不能重复,求最大覆盖次 ...
- 匈牙利算法求最大匹配(HDU-4185 Oil Skimming)
如下图:要求最多可以凑成多少对对象 大佬博客: https://blog.csdn.net/cillyb/article/details/55511666 https://blog.csdn.net/ ...
- HDU4185 Oil Skimming —— 最大匹配
题目链接:https://vjudge.net/problem/HDU-4185 Oil Skimming Time Limit: 2000/1000 MS (Java/Others) Memo ...
- Hdu4185 Oil Skimming
Oil Skimming Problem Description Thanks to a certain "green" resources company, there is a ...
- hdu 4185 Oil Skimming(二分图匹配 经典建图+匈牙利模板)
Problem Description Thanks to a certain "green" resources company, there is a new profitab ...
- Oil Skimming HDU - 4185(匹配板题)
Oil Skimming Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- HDU4185:Oil Skimming(二分图最大匹配)
Oil Skimming Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- H - Oil Skimming (挖石油)
题意大概是,海上漂浮着一些符号为#的石油,你要去搜集他们,但是你的勺子呢能且只能挖到两个单元的石油.问你最多能挖多少勺.注意 不能挖到纯净的海水,不然石油会被纯净的海水稀释的. 二分匹配,计算出里边有 ...
- J - Oil Skimming 二分图的最大匹配
Description Thanks to a certain "green" resources company, there is a new profitable indus ...
随机推荐
- RabbitMQ消息队列应用
RabbitMQ消息队列应用 消息通信组件Net分布式系统的核心中间件之一,应用与系统高并发,各个组件之间解耦的依赖的场景.本框架采用消息队列中间件主要应用于两方面:一是解决部分高并发的业务处理:二是 ...
- Linux好书、经典书籍推荐
Linux好书.经典书籍推荐 思想篇 <Linux/Unix设计思想> 图书将Unix与Linux的原理有效地结合起来,总结了Unix/Linux软件开发中的原则.在保留了第1版中Unix ...
- Eclipse上运行Python,使用PyDev
转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-pydev/index.html 级别: 初级 郑 伟芳 (zhengwf@c ...
- linux--关于shell的介绍
下面是最近学习shell的一些知识点总结***博客园-邦邦酱好*** 1.什么是shell(1)Shell将我们输入的指令与Kernel沟通,好让Kernel可以控刢硬件来正确无误地工作.(2)我们总 ...
- dede 标签
◆织梦内容管理系统模板标签代码参考 [Arclist 标记] 这个标记是DedeCms最常用的一个标记,也叫自由列表标记,其中 hotart.coolart.likeart.artlist.imgl ...
- [C++基金会]位计算 游戏开发中的应用
定义的位操作:通俗点说,,位计算是计算机操作二进制整数. 无论整数可以用二的方式来表示进度,不同类型的其长度的整数位的是不一样的.INT8要么char靠8个月2 位表示,INT16或者short是由1 ...
- 百度经纬度和google经纬度互转
原文:百度经纬度和google经纬度互转 百度地图的坐标转换,由于百度地图在GCJ02协议的基础上又做了一次处理,变为 BD09协议的坐标,以下是坐标的转化方式,可以方便和其他平台转化 private ...
- Callable 获取线程返回值
allable与 Future 两功能是Java在兴许版本号中为了适应多并法才增加的,Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它 ...
- crm工作机会实体
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; public class Opport ...
- BZOJ 1269 文本编辑器 Splay
题目大意:维护一个文本编辑器,支持下列操作: 1.将光标移动到某一位置 2.在光标后插入一段字符串 3.删除光标后的一段字符 4.翻转光标后的一段字符 5.输出光标后的一个字符 6.光标-- 7.光标 ...