求助,玄关
  • 板块学术版
  • 楼主hank0920
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/11 14:15
  • 上次更新2024/8/11 15:35:16
查看原帖
求助,玄关
916636
hank0920楼主2024/8/11 14:15

题目链接

60pts,求调

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 30;
int f[N][N], vis[N][N], bx, by, hx, hy;
int fx[] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
int fy[] = {0, 1, 2, 2, 1, -1, -2, -2, -1};
signed main(){
    cin >> bx >> by >> hx >> hy;
    for(int i = 0; i < 9; i ++) if(hx + fx[i] >= 0 && hy + fy[i] >= 0) vis[hx + fx[i]][hy + fy[i]] = 1;
    for(int i = 0; i <= bx; i ++) if(!vis[i][0]) f[i][0] = 1;
    for(int i = 0; i <= by; i ++) if(!vis[0][i]) f[0][i] = 1;
    for(int i = 1; i <= bx; i ++){
        for(int j = 1; j <= by; j ++){
            if(vis[i][j]) continue;
            f[i][j] = f[i - 1][j] + f[i][j - 1];
        }
    }
    cout << f[bx][by];
    return 0;
}
2024/8/11 14:15
加载中...