我在洛谷绑定的个人账号进行评测,结果UKE。
找到AtCoder原题后继续提交,RE了。
但是我的样例都是对的,并且自己出了几个也没有问题,开long long也没解决。
我使用的语言C++14(在AT是17,不知道跟这有没有关系),DFS解决的。
先说下思路:
#include<iostream>
using namespace std;
long long dx[]={0,0,-1,1};
long long dy[]={1,-1,0,0};
long long n,m,sx,sy,fx,fy;
bool mp[600][600]={false},solve=false;
void dfs(int nx,int ny){
if(solve) return;
long long tx,ty;
if(nx==fx&&ny==fy){
solve=true;
return;
}
for(int j=0;j<4;j++){
tx=nx+dx[j];ty=ny+dy[j];
if(mp[tx][ty]){
mp[tx][ty]=0;
dfs(tx,ty);
}
}
}
int main(){
cin>>n>>m;
for(long long i=0;i<n;i++){
for(long long j=0;j<m;j++){
char t;
cin>>t;
if(t=='#') mp[i][j]=0;
else{
mp[i][j]=1;
if(t=='s'){
sx=i;sy=j;
}
else if(t=='g'){
fx=i;fy=j;
}
}
}
}
mp[sx][sy]=false;
dfs(sx,sy);
if(solve) cout<<"Yes";
else cout<<"No";
return 0;
}