SSL P2324 细胞问题
来源:互联网 发布:用js设置秒表 编辑:程序博客网 时间:2024/05/16 19:18
题目: http://blog.csdn.net/qq_35786326/article/details/78820692
题意:
求矩阵中的连续(上下左右都可)板块数
分析:
90%都是水分,只需要中等水平的广搜+双重循环即可AC
代码:
#include<iostream>#include<cstdio>#include<algorithm>#include<string>#define LL long long//C++的福音!!!400ms——cin,120ms——超快输入流using namespace std;inline LL read(){LL d=0,f=1;char s=getchar();while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}while(s>='0'&&s<='9'){d=d*10+s-'0';s=getchar();}return d*f;}int t,n,m,head,tail,state[10001][2],x[70][70],i,j,dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};void bfs(){int i,j,f=0,x1,y1;for(i=1;i<=n;i++){for(j=1;j<=m;j++) { if(x[i][j]>0) f=1; if(f==1) break; } if(f==1) break;}for(i=1;i<=n;i++){for(j=1;j<=m;j++){ if(x[i][j]>0){x[i][j]=-1;//0为不可走,-1为已走过,>0为没走过 t++;//找到一个>0则+1,与其在一起的其他细胞,用广搜筛掉state[1][0]=i;state[1][1]=j;head=0;tail=1;//广搜初始化do//广搜开始{head++;for(int k=0;k<4;k++) { x1=state[head][0]+dx[k];y1=state[head][1]+dy[k]; if(x[x1][y1]>0&&x1>0&&x1<=n&&y1>0&&y1<=m) {tail++,x[x1][y1]=-1;state[tail][0]=x1;state[tail][1]=y1;} }}while(head<tail);}} } printf("%d",t);return;}int main(){n=read();m=read();int i,j;char s;for(i=1;i<=n;i++){j=0;while(s=getchar(),s!='\n'){j++;x[i][j]=s-48;}}bfs();return 0;}
阅读全文
2 0
- SSL P2324 细胞问题
- SSL P2324 细胞问题 题目
- 细胞问题-ssl 2324
- SSL JudgeOnlie 2324——细胞问题
- 细胞问题
- 细胞问题
- 问题 H: 查找细胞
- 【dfs】【bfs】细胞问题
- [附中OJ]细胞问题
- SSL_2324 细胞问题
- 细胞
- 细胞
- 细胞
- 细胞问题(广度优先搜索)
- BFS(广搜) 细胞问题
- 懒人读算法(二)-细胞问题
- 细胞问题(广搜练习题)
- 洛谷 P2324 [SCOI2005]骑士精神
- List Form表单常用功能
- Android——使用OkHttp(含各种请求方法)
- java数字转换
- Leetcode 712 Minimum ASCII Delete Sum for Two Strings
- 【NodeJS】回调和异步调用的关系
- SSL P2324 细胞问题
- MDK中STM32使用Printf函数详细解析
- 2017-12-8
- Living Clojure.pdf 英文原版 免费下载
- xml约束
- 洛谷P1199 三国游戏(博弈)
- Android移动开发-在Android项目里调用基于高德地图API实现定位
- jsp学习6-jsp的page指令
- uboot中PCIe驱动程序说明