同样的代码在acwing都能过,在luogu过不了,测试点也都是对的
查看原帖
同样的代码在acwing都能过,在luogu过不了,测试点也都是对的
1398086
ZASG楼主2024/8/15 01:51
#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

const int N = 25;
long long g[N][N];
long long mem[N][N];
long long xb,yb,xc,yc;
int dx[] = {2,2 ,1 ,1,-1,-1,-2,-2};
int dy[] = {1,-1,-2,2,-2, 2,-1, 1};

long long res = 0;

long long dfs(int x,int y){//x,y表示当前的点的坐标,返回的是路径条数
    if(mem[x][y]) return mem[x][y];
    long long sum = 0;
    if(x == 0 && y == 0) sum = 1;
    else if(g[x][y]) sum = 0;
    else if(x < 0 || y < 0) sum = 0;
    else  sum = dfs(x-1,y) + dfs(x,y-1);
    
    mem[x][y] = sum;
    
    return sum;
}

int main(){
    cin >> xb >> yb >> xc >> yc;
    g[xc][yc] = 1;
    for(int i = 0; i < 8; i++){
        if(xc+dx[i] >=0 && yc+dy[i] >=0)
        g[xc+dx[i]][yc+dy[i]] = 1;
    }
    res = dfs(xb,yb);
    cout << res;
    
    return 0;
}

如图

2024/8/15 01:51
加载中...