博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 6113 度度熊的01世界(结构体的赋值问题)
阅读量:5060 次
发布时间:2019-06-12

本文共 1462 字,大约阅读时间需要 4 分钟。

题目大意:

输入n*m的字符串矩形,判断里面的图形是1还是0,还是什么都不是

注意:结构体中放赋值函数,结构体仍旧能定义的写法

#include 
#include
#include
#include
#include
#include
#include
#include
#include
//#include
using namespace std;struct node{ int x,y; node(int a=0,int b=0):x(a),y(b) {} //这里point};int n,m,one,zero;int dr[4][2]= { { 1,0},{ 0,1},{-1,0},{ 0,-1} };char ch[105][105];bool vis[105][105];bool ok(int x,int y){ if (x>=0 && x<=n && y>=0 && y<=m) return 1; return 0;}void bfs(int sx,int sy){ queue
Q; Q.push(node(sx,sy)); vis[sx][sy]=1; while(!Q.empty()) { node u=Q.front(); node v; Q.pop(); for(int i=0; i<4; i++) { v.x=u.x+dr[i][0]; v.y=u.y+dr[i][1]; if (!ok(v.x,v.y)) continue; if (vis[v.x][v.y]) continue; if (ch[u.x][u.y]==ch[v.x][v.y]) { Q.push(v); vis[v.x][v.y]=1; } } } return;}int main(){ while(~scanf("%d%d",&n,&m)) { for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) cin>>ch[i][j]; for(int j=0; j<=m+1; j++) { ch[0][j]='0'; ch[n+1][j]='0'; } for(int i=0; i<=n+1; i++) { ch[i][0]='0'; ch[i][m+1]='0'; } n++; m++; memset(vis,0,sizeof(vis)); zero=0; one=0; for(int i=0; i<=n; i++) for(int j=0; j<=m; j++) { if (vis[i][j]==1) continue; if (ch[i][j]=='0') { zero++; bfs(i,j); } else { one++; bfs(i,j); } } // printf("%d %d\n",one,zero); if (one==1 && zero==2) printf("0\n"); else if (one==1 && zero==1) printf("1\n"); else printf("-1\n"); } return 0;}

 

转载于:https://www.cnblogs.com/stepping/p/7363611.html

你可能感兴趣的文章
BZOJ2049[Sdoi2008]Cave 洞穴勘测(LCT模板)
查看>>
vuex插件
查看>>
2011年12月09日
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
合并单元格
查看>>
swift-初探webView与JS交互
查看>>
IOS-图片操作集合
查看>>
Android bitmap图片处理
查看>>
Android应用程序进程启动过程的源代码分析
查看>>
adb logcat 命令行用法
查看>>
Redis学习手册(Key操作命令)
查看>>
模板统计LA 4670 Dominating Patterns
查看>>
泛型第23条:请不要在新代码中使用原生态类型
查看>>
非对称加密
查看>>
bzoj 3413: 匹配
查看>>
从下周开始就要采用网上记录值班日志了
查看>>
在qq中可以使用添加标签功能
查看>>
eclipse 自定义布局
查看>>
团队项目开发客户端——登录子系统的设计
查看>>
【AppScan心得】IBM Rational AppScan 无法记录登录序列
查看>>