30分求助,记忆化为哈会超时啊
查看原帖
30分求助,记忆化为哈会超时啊
825010
Botter楼主2024/1/4 23:51

测试点7 8 9 TLE , 1 2 3 10 WA

//
// Created by Botter on 2024/1/4.
//

#include "iostream"

using  namespace  std;
int c , r , k;
long long ans;
char map[105][105];
bool visit[105][105];
void dfs(int x , int y , int index){
    if (x < 1 || x > c || y < 1 || y > r ||visit[x][y] ||  map[x][y] == '#') return ;
    if (index == k)  {
        ans++;
        return ;
    }
    visit[x][y] = true;
    dfs(x-1,y,index+1);
    dfs(x+1,y,index+1);
    dfs(x,y-1,index+1);
    dfs(x,y+1,index+1);
    visit[x][y] = false;
}
int main(){
    cin >> c >> r >> k;
    for (int i = 1 ; i <= c ; i++){
        for (int j = 1 ; j <= r ; j++){
            cin >> map[i][j];
        }
    }
    for (int i = 1 ; i <= c ; i++) {
        for (int j = 1; j <= r; j++) {
            if (map[i][j] == '.') {
                dfs(i, j, 1);
                map[i][j] = '#';
            }
        }
    }
    cout << ans;
    return 0;
}

/*
5 5 1
.###.
##.#.
..#..
#..#.
#.###
 */

2024/1/4 23:51
加载中...