B3625 9个TLE该如何优化?
  • 板块学术版
  • 楼主SkyWave
  • 当前回复10
  • 已保存回复10
  • 发布时间2022/9/21 22:47
  • 上次更新2023/10/27 10:23:33
查看原帖
B3625 9个TLE该如何优化?
234992
SkyWave楼主2022/9/21 22:47
//
//  main.cpp
//  E. 奇怪的机器人
//
//  Created by SkyWave Sun on 2022/9/21.
//

#include <iostream>
using namespace std;
char a[102][102];
int n,m;
int stopx,stopy;
int ans;
bool mark[102][102];
void dfs(int x,int y) {
    if (x == n && y == m) {
        printf("Yes\n");
        exit(0);
    }
    if (x < 1 || y < 1 || x > n || y > m) {
        return;
    }
    if (!mark[x][y+1] && a[x][y+1] == '.') {//右
        mark[x][y+1] = true;
        dfs(x, y+1);
        mark[x][y+1] = false;
    }
    if (!mark[x][y-1] && a[x][y-1] == '.') {//左
        mark[x][y-1] = true;
        dfs(x, y-1);
        mark[x][y-1] = false;
    }
    if (!mark[x-1][y] && a[x-1][y] == '.') {//上
        mark[x-1][y] = true;
        dfs(x-1, y);
        mark[x-1][y] = false;
    }
    if (!mark[x+1][y] && a[x+1][y] == '.') {//下
        mark[x+1][y] = true;
        dfs(x+1, y);
        mark[x+1][y] = false;
    }
}
int main(int argc, const char * argv[]) {
    scanf("%d%d",&n,&m);
    for (int i = 1; i<=n; ++i) {
        scanf("%s",a[i]+1);
    }
    dfs(1, 1);
    printf("No\n");
    return 0;
}

我怕入门与面试的题目讨论版太冷门就跑这里来了

2022/9/21 22:47
加载中...