【TJOI & HEOI 2016】【BZOJ 4554】【JZOJ 4612】 游戏
来源:互联网 发布:红包尾数控制软件 编辑:程序博客网 时间:2024/06/07 06:36
Description
Analysis
二分图匹配。
由于本人之前中了网络流的毒,此题便乱搞搞出来了。
首先,对于网络流的知识,可以参考专题“网络流与线性规划”
这题,就是最大点独立集。
但是不是裸的,因为有”#”影响一行情况。
所以,一行或一列中,被”#”隔开的部分视为不同的行或列。
Code
#include<cstdio>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++) using namespace std;const int N=53,M=5105;int n,m,st,x[N][N],y[N][N];int pos[M],bz[M],a[M][M];bool p[M];char map[N][N];void link(int u,int v){ a[u][++a[u][0]]=v;}bool match(int v){ if(bz[v]==st) return 0; bz[v]=st; fo(i,1,a[v][0]) { int u=a[v][i]; if(!pos[u] || match(pos[u])) { pos[u]=v; return 1; } } return 0;}int main(){ scanf("%d %d\n",&n,&m); fo(i,1,n) { fo(j,1,m) scanf("%c",&map[i][j]); scanf("\n"); } int xx=0,yy=0; fo(i,1,n) { xx++; fo(j,1,m) { if(map[i][j]=='#') xx++; if(map[i][j]=='*') x[i][j]=xx; } } fo(j,1,m) { yy++; fo(i,1,n) { if(map[i][j]=='#') yy++; if(map[i][j]=='*') y[i][j]=yy; } } int mx=0; fo(i,1,n) fo(j,1,m) if(map[i][j]=='*') { link(x[i][j],xx+y[i][j]); p[x[i][j]]=p[xx+y[i][j]]=1; mx=max(mx,xx+y[i][j]); } int tot=0,t=0; fo(i,1,mx) if(p[i]) tot++; for(st=1;st<=mx;st++) if(match(st)) t++; printf("%d",t); return 0;}
0 0
- 【TJOI & HEOI 2016】【BZOJ 4554】【JZOJ 4612】 游戏
- 【TJOI & HEOI 2016】【BZOJ 4556】【JZOJ 4614】 游戏
- 【TJOI & HEOI 2016】【JZOJ 4604】【BZOJ 4551】 树
- 【TJOI & HEOI 2016】【JZOJ 4605】 【BZOJ 4552】排序
- 【Tjoi2016&Heoi2016】【BZOJ 4554】【JZOJ 4612】游戏
- BZOJ 4556 [HEOI 2016] str
- BZOJ 4553 HEOI 2016 seq
- NKOJ 4151 (TJOI 2016&HEOI 2016)字符串(后缀数组+倍增+主席树)
- BZOJ 4868 HEOI 期末考试
- BZOJ 4551 HEOI 2016 树 (并查集)
- 【BZOJ 4887】【TJOI 2017】可乐
- BZOJ 2743 HEOI 2012 采花 树状数组
- [bzoj 3611] [heoi 2014] 大工程
- BZOJ 4870 HEOI 2017 组合数问题
- BZOJ 3172 TJOI 2013 单词 AC自动机
- BZOJ 3170: [Tjoi 2013]松鼠聚会
- BZOJ 3174[Tjoi 2013]拯救小矮人
- BZOJ 3996 TJOI 2015 线性代数 最小割
- Linux多线程知识
- 如何压缩pdf文件 把pdf文件变小
- Android 5.1.1 源码目录结构
- String、StringBuffer、StringBuilder的比较
- C语言入门(十五)函数递归
- 【TJOI & HEOI 2016】【BZOJ 4554】【JZOJ 4612】 游戏
- 每日一练——判断两序列是否为同一二叉搜索树序列
- 【MVC5】4.添加一个模型
- 在gitlab中对git stash的学习
- WSAEventSelect(事件选择)模型
- jsp里面相对路径显示不出来图的问题
- TestNG入门笔记[3]: 使用testng.xml来执行case
- mem management
- java 两个字符串取交集