这是一道典型的dp题目,就是一道填表题(用上一个状态推下一个状态)
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int n,p,m,t;
int a[105][105];
while(scanf("%d%d%d%d",&n,&p,&m,&t)!=EOF)
{
memset(a,0,sizeof(a));
a[0][p]=1;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j+1];
}
printf("%d\n",a[m][t]);
}
return 0;
}