【BZOJ4554】游戏(二分图匹配,网络流)

题解

Description

在2016年,佳缘姐姐喜欢上了一款游戏,叫做泡泡堂。简单的说,这个游戏就是在一张地图上放上若干个炸弹,看
是否能炸到对手,或者躲开对手的炸弹。在玩游戏的过程中,小H想到了这样一个问题:当给定一张地图,在这张
地图上最多能放上多少个炸弹能使得任意两个炸弹之间不会互相炸到。炸弹能炸到的范围是该炸弹所在的一行和一
列,炸弹的威力可以穿透软石头,但是不能穿透硬石头。给定一张nm的网格地图:其中代表空地,炸弹的威力可
以穿透,可以在空地上放置一枚炸弹。x代表软石头,炸弹的威力可以穿透,不能在此放置炸弹。#代表硬石头,炸
弹的威力是不能穿透的,不能在此放置炸弹。例如:给出14的网格地图xx,这个地图上最多只能放置一个炸弹
。给出另一个1
4的网格地图x#,这个地图最多能放置两个炸弹。现在小H任意给出一张n*m的网格地图,问你最
多能放置多少炸弹

Input

第一行输入两个正整数n,m,n表示地图的行数,m表示地图的列数。1≤n,m≤50。接下来输入n行m列个字符,代表网
格地图。的个数不超过nm个

Output

输出一个整数a,表示最多能放置炸弹的个数

Sample Input


4 4#****#****#*xxx#

Sample Output

5

题解

傻逼题呀
如果没有硬石头那就是傻逼的二分图匹配
多了一个硬石头
相当于把一行和一列拆成了两个点
然后还是二分图匹配
如果愿意最大流请自便

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define MAX 1000
inline int read()
{int x=0,t=1;char ch=getchar();while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();if(ch=='-')t=-1,ch=getchar();while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();return x*t;
}
struct Line
{int v,next;
}e[MAX*MAX];
int h[MAX],cnt=1;
inline void Add(int u,int v)
{e[cnt]=(Line){v,h[u]};h[u]=cnt++;
}
char g[MAX][MAX];
int n,m,tot1,tot2;
int t[MAX];
int match[MAX],vis[MAX],dep,ans;
bool DFS(int x)
{for(int i=h[x];i;i=e[i].next){int v=e[i].v;if(vis[v]!=dep){vis[v]=dep;if(!match[v]||DFS(match[v])){match[v]=x;return true;}}}return false;
}
int main()
{n=read();m=read();for(int i=1;i<=n;++i)scanf("%s",g[i]+1);tot1=0;for(int i=1;i<=m;++i)t[i]=i;tot2=m;for(int i=1;i<=n;++i){tot1++;for(int j=1;j<=m;++j){if(g[i][j]=='*')Add(tot1,t[j]);if(g[i][j]=='#')tot1++,t[j]=++tot2;}}for(int i=1;i<=tot1;++i){++dep;if(DFS(i))++ans;}printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/cjyyb/p/8137437.html

【BZOJ4554】游戏(二分图匹配,网络流)相关推荐

  1. 洛谷P1640 连续攻击游戏 二分图匹配

    给出n≤1e6n\leq1e6n≤1e6个装备,每个装备都有两个属性值,它的范围一定在[1,10000][1,10000][1,10000],你每个装备只能选择一个属性值,然后要求出最长的一段从111 ...

  2. 「LibreOJ Round #11」Misaka Network 与测试 (网络流跑二分图匹配)

    description 研究者们想要测试 Misaka Network,于是他们把 Misaka Network 中的所有妹妹们召集到了一起. 现在妹妹们排成了 N行 M 列,有的位置没有人.现在研究 ...

  3. 经典网络流题目模板(P3376 + P2756 + P3381 : 最大流 + 二分图匹配 + 最小费用最大流)...

    题目来源 P3376 [模板]网络最大流 P2756 飞行员配对方案问题 P3381 [模板]最小费用最大流 最大流 最大流问题是网络流的经典类型之一,用处广泛,个人认为网络流问题最具特点的操作就是建 ...

  4. 【二分图匹配】矩阵游戏

    Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏--矩阵游戏.矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两 ...

  5. nyoj-239 月老的难题 (二分图匹配—匈牙利算法 网络流—Dinic算法)

    月老的难题 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 月老准备给n个女孩与n个男孩牵红线,成就一对对美好的姻缘. 现在,由于一些原因,部分男孩与女孩可能结成幸福的一 ...

  6. 2021牛客暑期多校训练营3 C Minimum grid 网络流 + 二分图匹配

    传送门 文章目录 题意: 思路: 题意: 给你一个n∗nn*nn∗n的矩阵,有mmm个点的位置需要填数,填的数范围是0≤k≤1e60\le k\le1e60≤k≤1e6,需要满足第iii行的最大值是b ...

  7. [Cogs14] [网络流24题#1] 飞行员分配方案 [网络流,最大流,二分图匹配]

    经典二分图匹配,可以用匈牙利算法,也可以用最大流 代码如下(Dinic): #include <iostream> #include <cstdio> #include < ...

  8. 洛谷P3386:网络流之二分图匹配,最大流算法

    二分图:我的理解是,对图中的点集,可分为两个集合U和V,使得两个集合之间存在通路,且集合内部不存在通路.如上图. 匹配:两两不含公共端点的边集合M 最大匹配:边数最多的匹配 完美匹配:最大匹配的匹配数 ...

  9. 【洛谷P3386】【模板】二分图匹配【网络流】

    题目大意: 题目链接:https://www.luogu.org/problemnew/show/P3386 求一个二分图的最大匹配. 思路: 二分图匹配的模板.可以用匈牙利做. 听说这道题卡Dini ...

  10. 【网络流24题】搭配飞行员(最大流+二分图匹配)

    传送门 搭配飞行员     题意:二分图匹配裸题,不多说 I think Dinic算法跑最大流解决||匈牙利算法 Code 代码一:Dinic #include<cstdio> #inc ...

最新文章

  1. 使用VC++ 读取显示DEM文件
  2. 计算机科学术语,计算机科学中的术语(2)
  3. OSI七层模型非专业简介
  4. gcc版本降级/升级
  5. 【Apache POI】Java写入Excel文件
  6. 被 Kafka 虐的日子,太惨了……
  7. eclipse_中的注释_快捷键
  8. android手机用户收入,苹果与安卓用户特征对比 iPhone用户高收入占多
  9. 欧拉函数之和(51nod 1239)
  10. Jquery checkbox选中问题
  11. java使用zxing_在Java中使用Zxing读取QRCode
  12. 关于主机的思维导图_【思维导图大咖分享干货】关于思维导图中插图的用法细解!!...
  13. 中科院毕业去向(硕士+博士)
  14. 程序在单片机里是如何运行的?
  15. 印度市场救不了苹果手机,也救不了库克
  16. 我们真的需要会议耳机吗?
  17. 批处理语言规则--编辑bat文件
  18. perl 串口 linux,Perl的串口操作Win32::SerialPort
  19. aps软件诠释精益制造的三个概念
  20. VB程序设计教程(第四版)龚沛曾-实验8-5

热门文章

  1. poj 3071 Football 概率dp
  2. 哈哈哈,第一次做codeforce
  3. Illustrator中文版教程,如何在 Illustrator 中添加文字?
  4. 苹果mac可视化数学分析软件:matlabr2021b
  5. 如何在 Mac 上的“音乐”应用和 iTunes 中创建 Genius 播放列表?
  6. pd虚拟机 17+win10、11懒人镜像 Mac
  7. 公共技术点之 Android 动画基础
  8. fireworks切图
  9. 用户自定义多选框checkbox
  10. NoSQL数据库概览及其与SQL语法的比较