luogu1002【2002普及】过河卒(递推)

来源:互联网 发布:梦幻西游mac版安装教程 编辑:程序博客网 时间:2024/06/11 16:40

递推。

#include<cstdio>int n,m,x,y,g[21][21]={0};int dx[8]={1,1,-1,-1,2,2,-2,-2};int dy[8]={2,-2,2,-2,1,-1,1,-1};long long a[21][21];int main(){    scanf("%d%d%d%d",&n,&m,&x,&y);    g[x][y]=1;    for(int i=0;i<8;i++)    if(x+dx[i]>=0&&x+dx[i]<=20&&y+dy[i]<=20&&y+dy[i]>=0) g[x+dx[i]][y+dy[i]]=1;    a[0][0]=1;    for(int i=1;i<=n;i++)    if(g[i][0]==0) a[i][0]=a[i-1][0];    for(int i=1;i<=m;i++)    if(g[0][i]==0) a[0][i]=a[0][i-1];    for(int i=1;i<=n;i++)    for(int j=1;j<=m;j++){        if(g[i][j]==0) a[i][j]=a[i-1][j]+a[i][j-1];    }    printf("%lld",a[n][m]);    return 0;}