HDU 4185 二分匹配 1*2方格个数
来源:互联网 发布:ipc网络摄像机软件 编辑:程序博客网 时间:2024/06/06 21:37
题意:
问'##' 这样最多有几个相邻
与之前的 用1*2铺矩阵题目一样,把所有非#的点改成坏点,水过
#include <iostream>#include <stdio.h>#include <string.h>#include <set>#include <queue>#include <algorithm>#include <cstdlib>#include <vector>#include <math.h>#define N 202#define M 201using namespace std;int n;int map[N][N];int lef[N*N];//lef[v]表示Y集的点v 当前连接的点 bool T[N*N]; //T[u] 表示Y集 u 是否已连接x集vector<int>G[N*N]; //匹配边 G[X集].push_back(Y集) 注意G 初始化bool match(int x){ // x和Y集 匹配 返回x点是否匹配成功for(int i=0; i<G[x].size(); i++){int v = G[x][i];if(!T[v]){T[v] = true;if(lef[v] == -1 || match( lef[v] )){lef[v] = x;return true;}}}return false;}int solve(){memset(lef, -1, sizeof(lef));int ans = 0;for(int i = 1; i<= n; i++)//X集匹配,X集点标号从 1-pn 匹配边是G[左点].size() for(int j = 1; j<=n; j++){memset(T, 0, sizeof(T));if( match( i*M +j ) ) ans++;}return ans;}void pipei(int x1,int y1,int x2,int y2){if(map[x2][y2] || map[x1][y1]) return ;if(x1>n || x2>n || y1>n || y2>n)return ;G[ x1*M + y1 ] .push_back( x2*M + y2);}void Have_map(){int i,j;for(i=1;i<=n;i++)for(j=1;j<=n;j++)G[i*M+j].clear();for(i=1;i<=n;i++)for(j=1;j<=n;j++){pipei(i,j, i, j+1);pipei(i,j+1, i,j);pipei(i,j, i+1, j);pipei(i+1, j, i, j);}}char s[N];int main(){int i, j, t, Cas = 1;scanf("%d",&t);while(t--){memset(map,0,sizeof(map));scanf("%d",&n);for(i = 1; i <= n; i++){scanf("%s",s);for(j = 1; j <= n; j++)if(s[j-1] == '.')map[i][j] = 1;}Have_map();int ans = solve();printf("Case %d: %d\n", Cas++, ans>>1);}return 0;}/*16.......##....##.......#.....##......*/
- HDU 4185 二分匹配 1*2方格个数
- HDU 4185(二分图匹配)
- hdu 2444 The Accomodation of Students 二分图判定+二分匹配个数
- HDU 2458 最大团个数=顶点数 - 补图最大匹配数 二分匹配
- HDU 1083.Courses【二分匹配】【1月2】
- hdu 4185Oil Skimming (二分匹配)
- hdu 4185 Oil Skimming (二分匹配)
- 【二分匹配】hdu 4185 Oil Skimming
- HDU 4185 Oil Skimming 二分图匹配
- HDU 4185 — Oil Skimming 二分匹配
- hdu 4185 Oil Skimming 二分图匹配
- hdu 4185 Oil Skimming 二分匹配
- hdu 4185 Oil Skimming (二分匹配)
- hdu 4185 Oil Skimming【二分匹配】
- 二分图匹配 匈牙利算法 hdu 4185
- HDU 4185 Oil Skimming 二分匹配
- HDU-4185-Oil Skimming [二分匹配]
- hdu Warm up 2( 二分图匹配)
- Node.js 介绍及安装
- ubuntu中更改MySQL默认编码报错
- setsockopt 设置socket 详细用法
- AFNetWorking3
- 为什么CSDN对火狐的兼容性那么垃圾
- HDU 4185 二分匹配 1*2方格个数
- ios 地图在viewDidLoad里面获得经纬度
- cocos2dX 文字的渲染
- 如何把本地可执行文件和TXT文本互转
- [互联网面试笔试汇总C/C++-20] 如何申请一个大小为n的数组(一维或二维)
- PS里的图标快捷键
- Apache与Tomcat 区别联系
- 如何优化网站响应时间
- 将帅问题