POJ 3020 Antenna Placement
来源:互联网 发布:linux 8080端口被占用 编辑:程序博客网 时间:2024/06/06 20:25
- Source Code
#include <iostream>#include <cstring>using namespace std;int map[40+5][10+5], next[4][2]={{1,0},{-1,0},{0,1},{0,-1}};int a[400+5][400+5], match[400+5];bool vis[400+5];int k;bool fin(int x) { for(int i=1;i<=k;i++) { if(a[x][i]&&!vis[i]) { vis[i]=1; if(!match[i]||fin(match[i])) { match[i]=x; return 1; } } } return 0;}int main() { int n, m, t; cin>>t; while(t--) { cin>>n>>m; k=0; memset(map,0,sizeof(map)); memset(a,0,sizeof(a)); memset(match,0,sizeof(match)); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { char temp; cin>>temp; if(temp=='*') map[i][j]=++k; }// for(int i=1;i<=n;i++) {// for(int j=1;j<=m;j++)// cout<<map[i][j]<<' ';// cout<<endl;// } for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) for(int l=0;l<4;l++){ int tx=i+next[l][0], ty=j+next[l][1]; if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&map[i][j]&&map[tx][ty]) a[map[i][j]][map[tx][ty]]=1; } int ans=0; for(int i=1;i<=k;i++){ memset(vis,0,sizeof(vis)); if(fin(i)) ans++; } cout<<k-ans/2<<endl; } return 0;}
0 0
- poj 3020 Antenna Placement
- Poj 3020 Antenna Placement
- Poj 3020 Antenna Placement
- poj 3020 Antenna Placement
- POJ 3020 Antenna Placement
- POJ 3020 Antenna Placement
- POJ 3020 Antenna Placement
- POJ 3020 Antenna Placement
- POJ 3020 Antenna Placement
- POJ 3020 Antenna Placement
- poj 3020 Antenna Placement
- POJ 3020 Antenna Placement
- POJ 3020 Antenna Placement
- POJ 3020Antenna Placement
- 【POJ 3020】Antenna Placement
- poj 3020 Antenna Placement
- poj-3020 Antenna Placement
- POJ 3020 Antenna Placement
- 套接字
- 集合的全排列(可包含重复元素)
- 杭电-1287 破译密码 (异或运算)
- Ehcache——设置缓存的大小
- IOI集训论文集
- POJ 3020 Antenna Placement
- Xcode 7 设置 LaunchImage图片
- AFNetworking3.0学习笔记[更新中]
- DataGridView中CellFormatting事件的应用
- 做UE的软件
- 根据Matrix获取Rotation
- 几种常见的博弈
- 前端冷知识
- OpenCV+ Python