POJ3020 Antenna Placement
来源:互联网 发布:双管德林杰分解数据图 编辑:程序博客网 时间:2024/05/21 10:04
二分图匹配水题
#ifdef _MSC_VER#define DEBUG#define _CRT_SECURE_NO_DEPRECATE#endif#include <fstream>#include <stdio.h>#include <iostream>#include <string.h>#include <string>#include <limits.h>#include <algorithm>#include <math.h>#include <numeric>#include <functional>#include <ctype.h>#define MAX 50using namespace std;char pic[MAX][MAX];int diff[]={-1,0,1,0,0,-1,0,1};bool interest[MAX*MAX],map[MAX*MAX][MAX*MAX],used[MAX*MAX];int mat[MAX*MAX];bool find(const int &x,const int &n){for(int i=0;i<n;++i){if(map[x][i] && !used[i] && interest[i]){used[i]=true;if(mat[i]==-1 || find(mat[i],n)){mat[i]=x;return true;}}}return false;}int main(void){#ifdef DEBUG freopen("../stdin.txt","r",stdin); freopen("../stdout.txt","w",stdout); #endif int h,w,ncases;scanf("%d",&ncases);while(ncases--){scanf("%d%d",&h,&w);memset(pic,'o',sizeof(pic));memset(map,0,sizeof(map));memset(mat,-1,sizeof(mat));memset(interest,false,sizeof(interest));getchar();for(int i=1;i<=h;++i)gets(pic[i]+1);int cnt=0;for(int i=1;i<=h;++i)for(int j=1;j<=w;++j)if(pic[i][j]=='*'){++cnt;interest[(i-1)*w+j-1]=true;for(int k=0;k<8;k+=2){int a=i+diff[k];int b=j+diff[k+1];if(pic[a][b]=='*')map[(i-1)*w+j-1][(a-1)*w+b-1] = map[(a-1)*w+b-1][(i-1)*w+j-1]=1;}}int n=h*w;int ans=0;for(int i=0;i<n;++i){memset(used,false,sizeof(used));if(interest[i])if(find(i,n))++ans;}printf("%d\n",cnt-ans+ans/2);} return 0;}
- POJ3020 Antenna Placement
- poj3020 Antenna Placement
- poj3020 Antenna Placement
- Antenna Placement poj3020
- poj3020-Antenna Placement
- POJ3020 Antenna Placement
- poj3020 Antenna Placement
- 【poj3020】 Antenna Placement
- POJ3020-Antenna Placement
- POJ3020 Antenna Placement
- POJ3020 Antenna Placement
- poj3020——Antenna Placement
- POJ3020 Antenna Placement 二分匹配
- poj3020--Antenna Placement(二分匹配)
- POJ3020--Antenna Placement--二分图最大匹配
- POJ3020 Antenna Placement 解题报告--匈牙利
- poj3020 Antenna Placement(二分图)
- poj3020-Antenna Placement-最小点覆盖
- bfs poj 2157 maze
- (POJ 1002) 487-3279
- EditText限制文字输入
- 带点 特殊符号的病毒文件夹删除方法
- 用shell生成简单格式的xml
- POJ3020 Antenna Placement
- Android开发中使用sqlite3出现sqlite3 : not found 问题
- 关于火星坐标、偏移、加偏和纠偏、无偏的理解
- Coreseek/Sphinx安装测试配置指南
- 在Firefox 10.0.1 版本中,javascript中的数组默认添加了clone属性
- Mysql 慢查询日志分析方法说明
- 黑马程序员——IO
- svn安装配置迁移步骤
- Export-CSV输出自定义对象数组