链接:

http://acm.hdu.edu.cn/showproblem.php?pid=4185

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82834#problem/G

与上题(H)相似

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 510
#define INF 0x3f3f3f3f // un是匹配左边的定点数, vn是匹配右边的定点数
int n, un, vn, used[N], p[N], Hash[N][N], g[N][N];
char G[N][N]; //匈牙利算法, 从左边开始找增广路
int Find(int u)
{
for(int j=; j<vn; j++)
{
if(!used[j] && g[u][j])
{
used[j] = ;
if(p[j]==- || Find(p[j]))
{
p[j] = u;
return true;
}
}
}
return false;
} //最大匹配数
int hungary()
{
int ans = ; memset(p, -, sizeof(p));
for(int i=; i<un; i++)
{
memset(used, , sizeof(used));
if(Find(i)) ans++;
}
return ans;
} int main()
{
int t, k=;
scanf("%d", &t);
while(t--)
{
int i, j, tol=; scanf("%d", &n);
memset(G, , sizeof(G));
memset(Hash, , sizeof(Hash));
memset(g, , sizeof(g)); for(i=; i<n; i++)
{
scanf("%s", G[i]);
for(j=; j<n; j++)
if(G[i][j]=='#')
Hash[i][j]=tol++;
} for(i=; i<n; i++)
for(j=; j<n; j++)
{
if(G[i][j]=='#')
{
if(i> && G[i-][j]=='#') g[Hash[i][j]][Hash[i-][j]]=;
if(i<n- && G[i+][j]=='#') g[Hash[i][j]][Hash[i+][j]]=;
if(j> && G[i][j-]=='#') g[Hash[i][j]][Hash[i][j-]]=;
if(j<n- && G[i][j+]=='#') g[Hash[i][j]][Hash[i][j+]]=;
}
} un = vn = tol;
printf("Case %d: %d\n", k++, hungary()/); }
return ;
}

(匹配)Oil Skimming -- hdu --4185的更多相关文章

  1. Oil Skimming HDU - 4185(匹配板题)

    Oil Skimming Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  2. G - Oil Skimming - hdu 4185(二分图匹配)

    题意:在大海里有一些石油 ‘#’表示石油, ‘.’表示水,有个人有一个工具可以回收这些石油,不过只能回收1*2大小的石油块,里面不能含有海水,要不就没办法使用了,求出来最多能回收多少块石油 分析:先把 ...

  3. hdu 4185 Oil Skimming(二分图匹配 经典建图+匈牙利模板)

    Problem Description Thanks to a certain "green" resources company, there is a new profitab ...

  4. HDU 4185 ——Oil Skimming——————【最大匹配、方格的奇偶性建图】

    Oil Skimming Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...

  5. HDU4185:Oil Skimming(二分图最大匹配)

    Oil Skimming Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  6. Hdu4185 Oil Skimming

    Oil Skimming Problem Description Thanks to a certain "green" resources company, there is a ...

  7. 匈牙利算法求最大匹配(HDU-4185 Oil Skimming)

    如下图:要求最多可以凑成多少对对象 大佬博客: https://blog.csdn.net/cillyb/article/details/55511666 https://blog.csdn.net/ ...

  8. H - Oil Skimming (挖石油)

    题意大概是,海上漂浮着一些符号为#的石油,你要去搜集他们,但是你的勺子呢能且只能挖到两个单元的石油.问你最多能挖多少勺.注意 不能挖到纯净的海水,不然石油会被纯净的海水稀释的. 二分匹配,计算出里边有 ...

  9. J - Oil Skimming 二分图的最大匹配

    Description Thanks to a certain "green" resources company, there is a new profitable indus ...

随机推荐

  1. 通过yumdownloader下载rpm包

    通过yum自带的一个工具:yumdownloader [root@web1 ~]#  rpm -qa |grep yum-utils [root@web1 ~]# yum -y install yum ...

  2. 【Java】JVM(六)虚拟机字节码执行引擎

    一.概述 执行引擎是虚拟机中最核心的部分之一, 虚拟机自己实现引擎,自己定义指令集和执行引擎的结构体系. 二.栈帧 栈帧包含(1)局部变量表.(2)操作数栈.(3)动态链接.(4)方法返回地址.(5) ...

  3. hadoop 官方配置文件解析

    比如我的版本是2.8.4 官网文档是: http://hadoop.apache.org/docs/r2.8.4/ 基本配置文件:包括一般的端口 hdfs-default.xml dfs.nameno ...

  4. Mysql Innodb 性能参数设置 https://www.rathishkumar.in/2017/01/how-to-allocate-innodb-buffer-pool-size-in-mysql.html

    参考原文: https://www.rathishkumar.in/2017/01/how-to-allocate-innodb-buffer-pool-size-in-mysql.html 查看系统 ...

  5. Python实现的常用排序方法

    1.冒泡排序,相邻位置比较大小,将比较大的(或小的)交换位置 def maopao(a):     for i in range(0,len(a)):         for j in range(0 ...

  6. switch_to_frame,切换frame框架

    页面包含frame/iframe标签,需要先切换到该frame标签,再去定位属于这个frame的元素.   如果要再去定位其他frame的元素,需要回到该frame的上级,定位到要选择的frame,不 ...

  7. 分享至微信、QQ、微博、复制链接

    var share = { "tit": '您的朋友分享了文章', "desc": '分享来自百度文库,包含...', "pic": 'ht ...

  8. 判断Javascript对象是否为空

    判断普通javascript对象是否为空(含有可枚举的属性,自有的.继承的都可以),可使用jQuery 3.2.1版的isEmptyObject()方法: isEmptyObject: functio ...

  9. 交叉字符串 · Interleaving String

    [抄题]: 给出三个字符串:s1.s2.s3,判断s3是否由s1和s2交叉构成.(洗牌) 比如 s1 = "aabcc" s2 = "dbbca" - 当 s3 ...

  10. linux-Centos 7下mysql 5.7.9的rpm包安装

    操作系统:Centos 7.1 mysql数据库版本:mysql5.7.18 1.安装新版mysql之前,我们需要将系统自带的mariadb-lib卸载 [root@123 ~]# rpm -qa|g ...