自己测试的时候似乎是正确的,但是134全都WA...不是特别明白
查看原帖
自己测试的时候似乎是正确的,但是134全都WA...不是特别明白
1534255
I_Automne楼主2024/10/26 01:11
 #include <stdio.h>

    //马拦过河卒问题

    int main(){
        long long arr[21][21] = {0};      //二维数组棋盘20*20,全定义为0
        int n,m;        //B点坐标
        int hx,hy;      //马坐标
        scanf("%d%d%d%d",&n,&m,&hx,&hy);        //输入B坐标与马坐标

        for ( int ix = 0; ix <= n ; ix++)       //遍历x
        {
            for (int iy = 0; iy <= m; iy++)     //遍历y
            {
                if (ix == 0 && iy == 0)         //跳过00
                {
                    continue;
                }
                if (ix == 0 || iy == 0)         //赋予两端的路径为1种可能
                {
                    arr[ix][iy] = 1;
                }
                else if (ix==hx+1&&iy==hy+2||ix==hx+2&&iy==hy+1||       //马的控制点标为0
                        ix==hx+1&&iy==hy-2||ix==hx+2&&iy==hy-1||
                        ix==hx-1&&iy==hy+2||ix==hx-2&&iy==hy+1||
                        ix==hx-1&&iy==hy-2||ix==hx-2&&iy==hy-1||
                        ix==hx&&iy==hy)
                {
                    arr[ix][iy] = 0;
                }
                else
                {
                    arr[ix][iy] = arr[ix-1][iy] + arr[ix][iy-1];        //递推算法
                }
            }
        }
    printf("%lld\n",arr[n][m]);     //输出可能的路径数(路径算法)
    return 0;
    }
2024/10/26 01:11
加载中...