60分的看这里
查看原帖
60分的看这里
1099581
zzh_zz楼主2024/10/19 16:34

不开longlong见祖宗

#include <iostream>
#define int long long

using namespace std;

const int N = 30;

int f[N][N];

signed main()
{
    int n, m, a, b;
    cin >> n >> m >> a >> b;
    n ++, m ++, a ++, b ++;
    int dx[9] = {0, -1, -2, -2, -1, 1, 2, 2, 1}, dy[9] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
    
    
    f[0][1] = 1;
    for(int i = 1; i <= n; i ++)
        for(int j = 1; j <= m; j ++)
        {
            bool flag = true;
            for(int k = 0; k < 9; k ++)
            {
                int x = a + dx[k], y = b + dy[k];
                if(i == x && j == y) 
                {
                    f[i][j] = 0;
                    flag = false;
                    break;
                }
            }
            if(flag) f[i][j] = f[i - 1][j] + f[i][j - 1];
        }
    
    cout << f[n][m] << endl;
    
    return 0;
}
2024/10/19 16:34
加载中...