求解
  • 板块学术版
  • 楼主齐宇辰
  • 当前回复5
  • 已保存回复5
  • 发布时间2020/10/27 20:28
  • 上次更新2023/11/5 09:43:13
查看原帖
求解
234933
齐宇辰楼主2020/10/27 20:28

https://ac.nowcoder.com/acm/contest/7501/I

来源:牛客网 我废了 大佬帮一下 卡循环里2个小时了```cpp #include using namespace std; char a[10001][10001]; int b[10001][10001]; int ans=0; int n,m; void find(){ int k=0; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(b[i][j]==1){ if(a[i][j+1]=='A'&&b[i][j+1]==0){ b[i][j+1]=1; k=1; ans+=1;

            }
            if(a[i][j-1]=='D'&&b[i][j-1]==0){
                b[i][j-1]=1;
                k=1;
                ans+=1;
                
            }
            if(a[i+1][j]=='S'&&b[i+1][j]==0){
                b[i+1][j]=1;
                k=1;
                ans+=1;
                
            }
            if(a[i-1][j]=='W'&&b[i-1][j+1]==0){
                b[i-1][j]=1;
                k=1;
                ans+=1;
                
            }
        }
    }
}
if(k==0){
    find();
}

} int main(){ cin>>n>>m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>a[i][j]; b[i][j]=0; } } for (int i=0;i<n;i++){ if(a[i][0]=='A'){ b[i][0]=1; cout<<i<<0<<endl; } if(a[i][m-1]=='D'){ b[i][m-1]=1; cout<<i<<endl; } } for (int j=0;j<m;j++){ if(a[0][j]=='W'){ b[0][j]=1; cout<<0<<j<<endl; } if(a[n-1][j]=='S'){ b[n-1][j]=1; cout<<j<<endl; } } find(); cout<<ans; return 0; }

2020/10/27 20:28
加载中...