[POJ 1164] The Castle 位运算加搜索
2015-10-15 22:27
330 查看
题目大意:
给定一张图,求dfs图的最大连通块代码
#include <cstdio> #include <cstring> #include <iostream> using namespace std; int m,n,mat[1000][1000],vis[1000][1000]; int cnt(0),cnt2(0); int Dfs(int x,int y) { if(x<1||y<1||x>m||y>n) return 1; if((mat[x][y]&1)==0&&vis[x][y-1]==0) { vis[x][y-1]=1; Dfs(x,y-1); cnt++; } if((mat[x][y]&2)==0&&vis[x-1][y]==0) { vis[x-1][y]=1; Dfs(x-1,y); cnt++; } if((mat[x][y]&4)==0&&vis[x][y+1]==0) { vis[x][y+1]=1; Dfs(x,y+1); cnt++; } if((mat[x][y]&8)==0&&vis[x+1][y]==0) { vis[x+1][y]=1; Dfs(x+1,y); cnt++; } } int main(){ cin>>m>>n; memset(vis,0,sizeof(0)); for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++) { cin>>mat[i][j]; } } int maxx(0); for(int i=1;i<=m;i++) { for(int j=1;j<=n;j++) { if(vis[i][j]==0) { cnt=0;cnt2++; Dfs(i,j); if(cnt>maxx) maxx=cnt; } } } cout<<cnt2<<endl<<maxx<<endl; }
相关文章推荐
- Android 学习之四大组件(二)——service
- DayDayUP_Linux运维学习_ftp安装使用
- Apple watch 开发指南(4) 配置你的xcode
- HYSBZ 1036(树链剖分)
- json小测试
- Apple watch 开发指南(1) 预览
- Apple watch 开发指南(2) 前言
- Apple watch 开发指南(3) 开发apple watch
- Apworks框架实战(六):使用基于Entity Framework的仓储基础结构
- 基于注解来装配Bean的属性
- 27.使用iterator标签时常见的错误
- hdoj 1040 As Easy As A+B 【归并排序】
- AppleWatch开发入门一——Watch的开发思路与应用框架
- AppleWatch开发入门三——代码交互与控制器生命周期
- AppleWatch开发入门四——Table视图的应用
- AppleWatch开发入门五——菜单控件的使用
- UVa1388 - Graveyard
- jsoncpp的输出顺序
- basics 阶梯斐波那契数列
- 多态的弊端