bzoj 4554: [Tjoi2016&Heoi2016]游戏
来源:互联网 发布:无法无天 吾知txt 编辑:程序博客网 时间:2024/05/16 11:34
如果不考虑硬石头的限制,那么就是经典的二分图匹配,对于硬石头的限制,就把同一行/同一列再拆点。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#define ll long long
#define inf 1e9
#define eps 1e-8
#define md
#define N 5010
using namespace std;
struct yts { int x,t,ne;} e[N];
int v[N],link[N],X[55][55],Y[55][55];
int vis[N];
char st[55][55];
int num;
void put(int x,int y)
{
num++; e[num].x=x; e[num].t=y;
e[num].ne=v[x]; v[x]=num;
}
bool dfs(int x,int id)
{
for (int i=v[x];i;i=e[i].ne)
{
int y=e[i].t;
if (vis[y]==id) continue; vis[y]=id;
if (!link[y]||dfs(link[y],id))
{
link[y]=x;
return 1;
}
}
return 0;
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++) scanf("%s",st[i]+1);
int A=1,B=1;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
{
if (st[i][j]=='#') A++;
X[i][j]=A;
}
A++;
}
for (int j=1;j<=m;j++)
{
for (int i=1;i<=n;i++)
{
if (st[i][j]=='#') B++;
Y[i][j]=B;
}
B++;
}
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
if (st[i][j]=='*') put(X[i][j],Y[i][j]);
int ans=0;
for (int i=1;i<=A;i++) ans+=dfs(i,i);
printf("%d\n",ans);
return 0;
}
0 0
- bzoj 4554: [Tjoi2016&Heoi2016]游戏
- BZOJ 4554: [Tjoi2016&Heoi2016]游戏
- BZOJ 4554: [Tjoi2016&Heoi2016]游戏
- BZOJ 4554: [Tjoi2016&Heoi2016]游戏
- 【Tjoi2016&Heoi2016】【BZOJ 4554】【JZOJ 4612】游戏
- bzoj 4554: [Tjoi2016&Heoi2016]游戏 网络流
- 【BZOJ】4554 [Tjoi2016&Heoi2016]游戏 二分图
- BZOJ P4554 [Tjoi2016&Heoi2016]游戏
- 4554: [Tjoi2016&Heoi2016]游戏
- 【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】游戏
- [BZOJ4554][Tjoi2016&Heoi2016]游戏
- 【原创】一句话来填坑(持续更新)
- 在导入design包以后,Android Studio R的问题
- 第10章CSS格式化排版
- openstack随笔
- hadoop2.7.2 window win7 基础环境搭建
- bzoj 4554: [Tjoi2016&Heoi2016]游戏
- Android开发常用开源框架推荐
- linux虚拟内存和物理内存的理解
- 第11章CSS盒模型
- 反转二叉树----java实现
- Android应用如何做到多尺寸,多语言适配,为什么尺寸对了,表现却不对
- ANDORID soundpool 播放无声音 sample 1 not ready
- Android动态加载基础 ClassLoader工作机制