Brandon_Sym @ 2024-07-04 21:09:17
本菜鸡的代码如下,5个AC,五个TLE,求各位指点;
#include<bits/stdc++.h>
using namespace std;
int a[110][110];
int n,m,flag=0;
void hhh(int x,int y){
if(flag==1){
return ;
}
if(x==n&&y==m){
flag=1;
return ;
}
if(a[x+1][y]==1&&x+1>=1&&x+1<=n&&y>=1&&y<=m){
a[x][y]=0;
hhh(x+1,y);
a[x][y]=1;
}
if(flag==1){
return ;
}
if(a[x-1][y]==1&&x-1>=1&&x-1<=n&&y>=1&&y<=m){
a[x][y]=0;
hhh(x-1,y);
a[x][y]=1;
}
if(flag==1){
return ;
}
if(a[x][y+1]==1&&x>=1&&x<=n&&y+1>=1&&y+1<=m){
a[x][y]=0;
hhh(x,y+1);
a[x][y]=1;
}
if(flag==1){
return ;
}
if(a[x][y-1]==1&&x>=1&&x<=n&&y-1>=1&&y-1<=m){
a[x][y]=0;
hhh(x,y-1);
a[x][y]=1;
}
if(flag==1){
return ;
}
return ;
}
int main(){
cin>>n>>m;
string c;
for(int i=1;i<=n;++i){
cin>>c;
for(int j=1;j<=m;++j){
if(c[j-1]=='.'){
a[i][j]=1;
}
else a[i][j]=0;
}
}
hhh(1,1);
if(flag==1){
cout<<"Yes";
}
else cout<<"No";
return 0;
}
码风 离谱 清奇,请各位原谅!
by Wyf32627 @ 2024-07-04 21:42:17
建议hhh函数中,flag==1全删了,并且string输入改char的二维数组,如下
char a[110][110];//定全局
//写int main()中
getchar();
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
a[i][j]=getchar();
}
getchar();
}
by Brandon_Sym @ 2024-07-05 20:39:39
@Wyf32627 谢谢,已关