过河卒

#include<stdio.h>

unsigned long long  max(unsigned long long a, unsigned long long b)
{
    if (a > b)
        return a;
    else
        return b;
}

int main(void)
{
    int horse[30][30] = { 0 };
    unsigned long long  array[30][30] = { 0 };
    int ban1[8] = { 2,1,-1,-2,-2,-1,1,2 };
    int ban2[8] = { 1,2,2,1,-1,-2,-2,-1 };
    int x, y, m, n;
    scanf("%d %d %d %d", &x, &y, &m, &n);
    x += 2;
    y += 2;
    m += 2;
    n += 2;
    array[2][2] = 1;
    horse[m][n] = 1;
    for (int i = 0; i < 8; i++)
    {
        horse[m + ban1[i]][n + ban2[i]] = 1;
    }
    for (int i = 2; i <= x; i++)
    {
        for (int j = 2; j <= y; j++)
        {
            if (horse[i][j])
                continue;
            array[i][j] = max(array[i][j], array[i - 1][j] + array[i][j - 1]);
        }
    }
    printf("%llu", array[x][y]);
}

 

posted @ 2021-01-18 08:50  loliconsk  阅读(128)  评论(0)    收藏  举报