站外求调(违规紫衫
  • 板块题目总版
  • 楼主_Vistion_
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/11/26 20:40
  • 上次更新2024/11/26 21:54:33
查看原帖
站外求调(违规紫衫
1319712
_Vistion_楼主2024/11/26 20:40

问从S到E最小时间,没有输出oop!

每次都输出oop!,求大佬帮忙更改

/******************************************************************************

Welcome to GDB Online.
  GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby, 
  C#, OCaml, VB, Perl, Swift, Prolog, Javascript, Pascal, COBOL, HTML, CSS, JS
  Code, Compile, Run and Debug online from anywhere in world.

*******************************************************************************/
#include <bits/stdc++.h>
#define int long long
#define ll ((i)*2)
#define rr ((i)*2+1)
using namespace std;
const int M=2e2+10;
const int mod=1e9+7;
inline int read()
{
	int x=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
	return x*f;
}
int r,c,vis[M][M];
char Map[M][M];
int sx,sy,fx,fy,ans=INT_MAX;
int f;
int next[5][3]={{1,0},{0,1},{-1,0},{1,0}};
void dfs(int x,int y,int d)
{
    if(x==fx&&y==fy){
        ans=min(ans,d);
        f=1;
        return;
    }
    for(int i=0; i<4; i++){
        int nx=next[i][0]+x,ny=next[i][1]+y;
        if(Map[nx][ny]=='#'||vis[nx][ny]||nx<1||nx>r||ny<1||ny>c) continue;
        vis[nx][ny]=1;
        dfs(nx,ny,d+1);
        vis[nx][ny]=0;
    }
}
signed main()
{
    r=read(),c=read();
    for(int i=0; i<r; i++){
        for(int j=0; j<c; j++){
        	cin>>Map[i][j];
            if(Map[i][j]=='S') sx=i,sy=j;
            if(Map[i][j]=='E') fx=i,fy=j;
        }
    }
    vis[sx][sy]=1;
    dfs(sx,sy,0);
    if(!f) cout<<"opp!";
    else cout<<ans;
    return 0;
}
/*
3 4
.S..
###.
..E.
*/
2024/11/26 20:40
加载中...