60求调,34没过
查看原帖
60求调,34没过
1116212
Swan416ya楼主2023/11/9 21:20
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,m,s,l;
    scanf("%d%d%d%d",&n,&m,&s,&l);
    long long dp[21][21];
    dp[0][0]=0;
    dp[1][0]=dp[0][1]=1;
    dp[s][l]=dp[s-1][l-2]=dp[s-2][l-1]=dp[s+2][l+1]=dp[s+1][l+2]=dp[s-1][l+2]=dp[s-2][l+1]=dp[s+1][l-2]=dp[s+2][l-1]=0;
    for(int i=2;i<=20;i++)
    {
        dp[i][0]=dp[i-1][0];
        dp[s][l]=dp[s-1][l-2]=dp[s-2][l-1]=dp[s+2][l+1]=dp[s+1][l+2]=dp[s-1][l+2]=dp[s-2][l+1]=dp[s+1][l-2]=dp[s+2][l-1]=0;
    }
    for(int i=2;i<=20;i++)
    {
        dp[0][i]=dp[0][i-1];
        dp[s][l]=dp[s-1][l-2]=dp[s-2][l-1]=dp[s+2][l+1]=dp[s+1][l+2]=dp[s-1][l+2]=dp[s-2][l+1]=dp[s+1][l-2]=dp[s+2][l-1]=0;
    }
    //dp[s][l]=dp[s-1][l-2]=dp[s-2][l-1]=dp[s+2][l+1]=dp[s+1][l+2]=dp[s-1][l+2]=dp[s-2][l+1]=dp[s+1][l-2]=dp[s+2][l-1]=0;
    for(int i=1;i<=20;i++)
    {
        for(int j=1;j<=20;j++)
        {
            dp[i][j]=dp[i-1][j]+dp[i][j-1];
            dp[s][l]=dp[s-1][l-2]=dp[s-2][l-1]=dp[s+2][l+1]=dp[s+1][l+2]=dp[s-1][l+2]=dp[s-2][l+1]=dp[s+1][l-2]=dp[s+2][l-1]=0;
        }
    }
    printf("%lld",dp[n][m]);
    return 0;
}

2023/11/9 21:20
加载中...