求大佬们帮助,我这个不知道错在哪里,但感觉是没有问题的。。。。

P2372 yyy2015c01挑战算周长

@[liuxinghuakong](/user/284825) 修改后代码如下: ``` cpp #include<iostream> using namespace std; int n,m,x,y,ans; int a[35][35]; char arr[35][35]; int dx[]={1,1,-1,-1,0,1,-1,0}; int dy[]={1,-1,-1,1,1,0,0,-1}; void dfs(int i,int j) { a[i][j]=1; for(int d=0;d<8;d++) { int xx=i+dx[d];//dx[i] -> dx[d] int yy=j+dy[d];//dy[i] -> dy[d] if(xx>0&&xx<=n&&yy>0&&yy<=m&&a[xx][yy]==0&&arr[xx][yy]=='X')//a -> arr dfs(xx,yy);//添加 yy<=m 的条件 if(d>3&&(xx<=0||xx>n||yy<=0||yy>m||arr[xx][yy]!='X'))//a ->arr ans++; } } int main() { cin>>n>>m>>x>>y; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>arr[i][j]; dfs(x,y); cout<<ans; return 0; } ```
by wsyhb @ 2020-12-17 20:05:47


|