0分求助
2025-07-10 16:33:27
发布于:广东
25阅读
0回复
0点赞
样例全过了,但WA:(
#include<bits/stdc++.h>
using namespace std;
const int nt[4][2]={1,0,-1,0,0,1,0,-1};
char c[1010][1010];
bool vis[1010][1010];
int x,y;
bool check(int x1,int y1){
return x1>=0&&x1<=x+1&&y1>=0&&y1<=y+1&&c[x1][y1]=='0'&&!vis[x1][y1];
}
void dfs(int x1,int y1){
for(int i=0;i<4;i++){
int nx=x1+nt[i][0];
int ny=y1+nt[i][1];
if(check(nx,ny)){
vis[nx][ny]=1;
dfs(nx,ny);
}
}
}
int main(){
scanf("%d%d",&x,&y);
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
cin>>c[i][j];
}
}
for(int i=0;i<=x+1;i++){
c[i][0]='0';
c[i][y+1]='0';
}
for(int i=0;i<=y+1;i++){
c[0][i]='0';
c[x+1][i]='0';
}
dfs(0,0);
int cnt=0;
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
if(c[i][j]=='0'&&!vis[i][j])cnt++;
}
}
printf("%d",cnt);
return 0;
}
全部评论 2
第一个样例有点离谱
输入:mzbmweyydiadtlcouegmdbyfwurpwb
输出:4372025-07-12 来自 福建
0就是不知道这题是不是人出的!!!
2025-07-11 来自 广东
0
有帮助,赞一个