l_x_y_ @ 2023-07-19 16:44:38
include<bits/stdc++.h>
using namespace std;
int n,m;
char a[110][110];
bool vis[110][110];
int fx[4]={1,0,-1,0};
int fy[4]={0,1,0,-1};
struct A{
int x,y;
};
queue<A> q;
int sx,sy;
bool t=0;
int main()
{
sx=sy=0;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
memset(a,2147483647,sizeof(a));
A Tmp;
Tmp.x=sx,Tmp.y=sy;
q.push(Tmp),a[sx][sy]=0;
while(!q.empty()){
A now=q.front();
q.pop();
for(int i=0;i<4;i++){
int nx=now.x+fx[i],ny=now.y+fy[i];
if(nx<1||nx>n||ny<1||ny>m||vis[nx][ny]||a[nx][ny]=='#') continue;
Tmp.x=nx,Tmp.y=ny,q.push(Tmp);
if(a[nx][ny]==a[n][m]){
cout<<"Yes";
t=1;
return 0;
}
}
}
if(t==0){
cout<<"No";
}
return 0;
}
这样对的是#1#6#8#10
#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[110][110];
bool vis[110][110];
int fx[4]={1,0,-1,0};
int fy[4]={0,1,0,-1};
struct A{
int x,y;
};
queue<A> q;
int sx,sy;
bool t=0;
int main()
{
sx=sy=0;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
memset(a,2147483647,sizeof(a));
A Tmp;
Tmp.x=sx,Tmp.y=sy;
q.push(Tmp),a[sx][sy]=0;
while(!q.empty()){
A now=q.front();
q.pop();
for(int i=0;i<4;i++){
int nx=now.x+fx[i],ny=now.y+fy[i];
if(nx<0||nx>n||ny<0||ny>m||vis[nx][ny]||a[nx][ny]=='#') continue;
Tmp.x=nx,Tmp.y=ny,q.push(Tmp);
if(a[nx][ny]==a[n][m]){
cout<<"Yes";
t=1;
return 0;
}
}
}
if(t==0){
cout<<"No";
}
return 0;
}
这样错的是#1#6#8#10
by l_x_y_ @ 2023-07-19 16:46:00
区别是 第一版:
if(nx<1||nx>n||ny<1||ny>m||vis[nx][ny]||a[nx][ny]=='#') continue;
第二版:
if(nx<0||nx>n||ny<0||ny>m||vis[nx][ny]||a[nx][ny]=='#') continue;
by zcy_jake @ 2023-08-21 10:31:49
这是很正常的事情。
又遇到一位大佬
by Ryzen_9_7950X @ 2023-09-30 10:12:46
看样子是:第一段代码只输出N哦,第二段代码只输出Yes[doge]