【Tjoi2016&Heoi2016】【BZOJ 4554】【JZOJ 4612】游戏
来源:互联网 发布:java 数组长度 编辑:程序博客网 时间:2024/05/16 19:35
Description
在2016年,佳缘姐姐喜欢上了一款游戏,叫做泡泡堂。简单的说,这个游戏就是在一张地图上放上若干个炸弹,看
是否能炸到对手,或者躲开对手的炸弹。在玩游戏的过程中,小H想到了这样一个问题:当给定一张地图,在这张
地图上最多能放上多少个炸弹能使得任意两个炸弹之间不会互相炸到。炸弹能炸到的范围是该炸弹所在的一行和一
列,炸弹的威力可以穿透软石头,但是不能穿透硬石头。给定一张n*m的网格地图:其中*代表空地,炸弹的威力可
以穿透,可以在空地上放置一枚炸弹。x代表软石头,炸弹的威力可以穿透,不能在此放置炸弹。#代表硬石头,炸
弹的威力是不能穿透的,不能在此放置炸弹。例如:给出1*4的网格地图xx,这个地图上最多只能放置一个炸弹
。给出另一个1*4的网格地图x#,这个地图最多能放置两个炸弹。现在小H任意给出一张n*m的网格地图,问你最
多能放置多少炸弹
Solution
看起来像搜索或贪心,但实际是网络流二分图最大匹配,
先把整个矩阵的边缘打上#,
我们把每个*点视为左边的#与上边的#的一条边,因为每段没有阻挡的区间只允许一个炸弹,
最后用匈牙利算法做一遍二分图最大匹配即可
Code
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define H(i,j) ((i)*(m+1)+j)#define link(q,w) b[q][++b[q][0]]=wusing namespace std;const int N=55*55;int n,m,ans,I;int b[N][N],zx[N];int z[N];char a[55][55];bool OK(int q){ if(z[q]>=I)return 0; z[q]=I; fo(i,1,b[q][0]) { if(!zx[b[q][i]]||OK(zx[b[q][i]])){zx[b[q][i]]=q;return 1;} } return 0;}int main(){ scanf("%d%d",&n,&m); fo(i,1,n)a[i][0]=a[0][i]='#'; fo(i,1,n)fo(j,1,m) { char ch=' '; while(ch!='*'&&ch!='x'&&ch!='#')ch=getchar(); a[i][j]=ch; if(ch=='*') { int I,J; for(I=i-1;a[I][j]!='#';I--); for(J=j-1;a[i][J]!='#';J--); link(H(i,J),H(I,j)); } } I=0; fo(i,1,n)fo(j,0,m)if(a[i][j]=='#') { I++; if(OK(H(i,j)))ans++; } printf("%d\n",ans); return 0;}
0 0
- 【Tjoi2016&Heoi2016】【BZOJ 4554】【JZOJ 4612】游戏
- bzoj 4554: [Tjoi2016&Heoi2016]游戏
- BZOJ 4554: [Tjoi2016&Heoi2016]游戏
- BZOJ 4554: [Tjoi2016&Heoi2016]游戏
- BZOJ 4554: [Tjoi2016&Heoi2016]游戏
- bzoj 4554: [Tjoi2016&Heoi2016]游戏 网络流
- 【BZOJ】4554 [Tjoi2016&Heoi2016]游戏 二分图
- BZOJ P4554 [Tjoi2016&Heoi2016]游戏
- 4554: [Tjoi2016&Heoi2016]游戏
- [Tjoi2016&Heoi2016]【BZOJ 4553】【JZOJ 4606】序列
- 【bzoj 4554】【Tjoi2016&Heoi2016】【NOIP2016模拟7.12】游戏
- bzoj 4554: [Tjoi2016&Heoi2016]游戏 (最大流)
- BZOJ4554 [Tjoi2016&Heoi2016]游戏
- 【bzoj4554】[Tjoi2016&Heoi2016]游戏
- bzoj4554【TJOI2016&HEOI2016】游戏
- [Tjoi2016&Heoi2016]游戏
- 【Tjoi2016&Heoi2016】游戏
- 【TJOI2016&&HEOI2016】游戏
- Netty权威指南读书笔记
- leetcode_c++:哈希:Bulls and Cows(299)
- Http请求中Content-Type讲解以及在Spring MVC中的应用
- CSS实现会发光的输入框input
- SecureCRT 7.3.4破解版(含注册机)
- 【Tjoi2016&Heoi2016】【BZOJ 4554】【JZOJ 4612】游戏
- 图片转换成字节流或者保存到本地
- Eclipse让js进行代码提示,做到和java文件一样;---HTML/CSS/JSP代码提示,同理
- 如何更改dos起始位置
- ANN神经网络
- ACM--最大公约数--HDOJ 1019--Least Common Multiple--水
- 动态规划求解最长公共子序列(LCS)
- Spring和Mybatis整合时无法读取properties的处理方案
- HDOJ 4277 USACO ORZ DFS+剪枝