时间限制:1秒 内存限制:128M 题目描述 给出一个由数字0~9组成的矩形,其中数字0代表树,1~9代表猴子,凡是由0或矩形边围起来的区域表示有一群猴子在这一带。编程求矩形中有多少群猴子
输入描述 第一行两个正整数,表示矩形的行数m和列数n,1<=m,n<=100
下面为一个mxn的数字矩形
输出描述 一行一个数,表示猴群的数目
样例 输入 7 6 100100 000003 000000 000000 050100 004000 000000 输出 6
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int a[15][15],ans,n;
int dx[]={0,0,1,-1,1,1,-1,-1};
int dy[]={1,-1,0,0,1,-1,1,-1};
void dfs(int x,int y){
if(x==1&&y==n){
ans++;
return ;
}
a[x][y]=1;
for(int i=0;i<8;i++){
int tx=x+dx[i],ty=y+dy[i];
if(tx<1||tx>n||ty<1||ty>n) continue;
if(a[tx][ty]==0){
dfs(tx,ty);
}
}
a[x][y]=0;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
a[i][j]=1;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%1d",&a[i][j]);
}
}
dfs(1,1);
cout<<ans;
return 0;
}
百分之42