HDU 6113 度度熊的01世界 (暴力dfs)
来源:互联网 发布:8080端口如何开启 编辑:程序博客网 时间:2024/05/22 11:53
思路:
因为条件是存在一个1的联通块包含着一个0的联通快的才是 0 所以,我们先预处理边界,对于0的边界处理成以访问过,对于边界是1的不做操作。
然后暴力判断每个点是否访问过来进行dfs求联通块的个数,如果0的个数和1的个数都是1,那么可以肯定图像为0,如果0的个数是0,1的个数是1,那么图像为1。
#include<stdio.h>#include <iostream>#include<string.h>#include<math.h>#include<algorithm>#define eps 1e-8typedef long long int lli;using namespace std;int ma[550][550];bool v[550][550];char s[550];int dir[4][2] = {0,-1, 0,1, -1,0, 1,0};void dfs(int x,int ii,int jj){ v[ii][jj] = 1; for(int i = 0;i <= 3;i++){ int iii = ii+dir[i][0], jjj = jj + dir[i][1]; if(ma[iii][jjj] == x && !v[iii][jjj]){ dfs(x,iii,jjj); } }}int main(){ int n,m; while(~scanf("%d%d",&n,&m)){ memset(ma,0,sizeof(ma)); memset(v,0,sizeof(v)); for(int i = 1;i <= n;i++){ scanf("%s",s); for(int j = 0;s[j];j++){ if(s[j]=='1') ma[i][j+1] = 1; if(s[j]=='0') ma[i][j+1] = -1; } } for(int j = 1;j <= m;j++){ if(!v[1][j] && ma[1][j]==-1) dfs(-1,1,j); if(!v[n][j] && ma[n][j]==-1) dfs(-1,n,j); } for(int i = 1;i <= n;i++){ if(!v[i][1] && ma[i][1]==-1) dfs(-1,i,1); if(!v[i][m] && ma[i][m]==-1) dfs(-1,i,m); } int cnt0=0,cnt1=0; for(int i = 1;i <= n;i++){ for(int j = 1;j <= m;j++){ if(!v[i][j]){ if(ma[i][j]==1){ cnt1++; } if(ma[i][j]==-1){ cnt0++; } dfs(ma[i][j],i,j); } } } if(cnt0==cnt1 && cnt1==1){ puts("0"); } else if(cnt0==0 && cnt1 == 1){ puts("1"); } else puts("-1"); } return 0;}
阅读全文
1 0
- HDU 6113 度度熊的01世界 (暴力dfs)
- 【HDU 6113 度度熊的01世界 】 & DFS
- HDU 6113 度度熊的01世界 dfs
- 【dfs】hdu 6113 度度熊的01世界
- HDU 6113 度度熊的01世界 (DFS
- HDU 6113 度度熊的01世界(dfs)
- hdu 6113 度度熊的01世界(dfs)
- HDU 6113 度度熊的01世界(dfs)
- HDU 6113 度度熊的01世界(简单dfs)
- hdu 6113 度度熊的01世界 (dfs+扩边界)
- BestCoder 度度熊的01世界 (DFS)
- HDU6113 度度熊的01世界(dfs)
- HDU 6113 度度熊的01世界 【DFS】(2017"百度之星"程序设计大赛
- 度度熊的01世界 dfs
- hdu 1015 (DFS,暴力)
- HDU 3647 Tetris (暴力DFS)
- HDU 5167 Fibonacci(DFS暴力搜索)
- HDU 1058 Humble Numbers 【暴力(DFS)】
- PyOpenCL教程(2)
- socket(php)(不确定是否是长连接)(一次连接,多次接受,发送特定字符时关闭连接)整理版本3
- [kuangbin]莫比乌斯反演——入门
- 字符串复制函数的优化过程
- QNX分布式实时操作系统初步认识-QNX系统了解认识
- HDU 6113 度度熊的01世界 (暴力dfs)
- 模拟模拟交易系统(五)——系统功能展示
- (OK) cBPM in Docker ( Fedora 26)
- Highcharts数据可视化工具功能效果图详解
- 辗转相除法详解
- 设计模式
- 十大免费PHP编辑器-开发工具
- CSU 1979: 古怪的行列式(DFS八皇后变形)
- wust oj 1891 低价购买(最长下降子序列+方案数)【模板】