洛谷 P1451 求细胞数量
题目描述
一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。(1<=m,n<=100)?
输入输出格式
输入格式:
输入:整数m,n(m行,n列)
矩阵
输出格式:
输出:细胞的个数
输入输出样例
输入样例#1:
4 10 0234500067 1034560500 2045600671 0000000089
输出样例#1:
4
dfs
屠龙宝刀点击就送
#include <iostream> #include <cstdio> using namespace std; char tx[151][151]; int fx[5]={1,-1,0,0},fy[5]={0,0,-1,1},m,n,ans; void dfs(int x,int y) { tx[x][y]='0'; for(int k=0;k<4;++k) { int to_x=x+fx[k],to_y=y+fy[k]; if(to_x>=1&&to_x<=m&&to_y>=1&&to_y<=n&&tx[to_x][to_y]!='0') dfs(to_x,to_y); } } int main() { scanf("%d%d",&m,&n); for(int i=1;i<=m;++i) for(int j=1;j<=n;++j) cin>>tx[i][j]; for(int i=1;i<=m;++i) for(int j=1;j<=n;++j) if(tx[i][j]!='0') { ans++; dfs(i,j); } printf("%d",ans); return 0; }
我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。