hdu4185 Oil Skimming(偶匹配)
2015-09-29 21:29
381 查看
<span style="font-family: Arial; font-size: 14.3999996185303px; line-height: 26px;">//题意,在一个N*N的矩阵里寻找最多有多少个</span><span style="font-size: 14px; line-height: 26px; font-family: 'Courier New', Courier, monospace; white-space: pre;">“</span><span style="font-size: 14px; line-height: 26px; font-family: 'Courier New', Courier, monospace; white-space: pre;">##”(横着竖着都行)。 </span>
# include <stdio.h> # include <algorithm> # include <string.h> using namespace std; int n,cot; int map[660],vis[660],pp[660][660],u[660][660]; int bfs(int x) { for(int i=1;i<=cot;i++) { if(!vis[i]&&pp[x][i]) { vis[i]=1; if(!map[i]||bfs(map[i])) { map[i]=x; return 1; } } } return 0; } void judge(int x,int y) { if(x<n-1&&u[x+1][y]) pp[u[x][y]][u[x+1][y]]=pp[u[x+1][y]][u[x][y]]=1;//相连的“#”标记 if(y<n-1&&u[x][y+1]) pp[u[x][y]][u[x][y+1]]=pp[u[x][y+1]][u[x][y]]=1; } int main() { int t,cas,i,j; char a[660][660]; while(~scanf("%d",&t)) { cas=0; while(t--) { scanf("%d",&n); for(i=0;i<n;i++) scanf("%s",a[i]); memset(u,0,sizeof(u)); cot=0; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(a[i][j]=='#') u[i][j]=++cot;//为“#”标记 } } memset(pp,0,sizeof(pp)); for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(u[i][j]) { judge(i,j); } } } int res=0; memset(map,0,sizeof(map)); for(i=1;i<=cot;i++)//一共1到cot个油田 { memset(vis,0,sizeof(vis)); if(bfs(i)) res++; } printf("Case %d: %d\n",++cas,res/2); } } return 0; }
相关文章推荐
- 第六课 自己实现路由改进,针对不同请求的路径进行响应
- load()和get()的区别
- 在linux操作系统下使用github的基本流程
- DirectX11 顶点着色器阶段
- 第一个 只出现一次的字符 位置(剑指offer)+哈希
- Handler消息机制源码解析
- http通信原理
- 五种开源协议(GPL,LGPL,BSD,MIT,Apache)
- android--计时器(Timer)
- JAVA中Random类的Random r=new Random()和Random r=new Random(seedValue)的区别
- android dialog left_icon
- (Java)利用ListIterator(iterator 重复器/迭代器的子接口) 操作ArrayList
- ZOJ 2478
- mac环境下Rwordseg和rJava的安装
- Line 20: EntityRef: expecting ';' 鄙人遇到的问题解决方案
- java垃圾回收
- Marshal.StructureToPtr(Object, IntPtr, Boolean)[将数据从托管对象封送到非托管内存块]
- [微软]题目4 : Image Encryption
- C/C++编程中容易忽略的知识
- ios 里 对 sqlite数据库进行操作的最底层C函数说明 - xcode里查不到 --特么是C++的 @-@