状态树hdu 2151(DP)
最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--状态树
DP学得还是不可,昨天的省赛太狼狈了。
毛毛虫第i分钟在第j棵树上的可能性是第i-1分钟在第j-1棵树和第j+1棵树上两种可能性之和。状态转移方程为f[i][j]=f[i-1][j-1]+f[i-1][j+1]。需要特别注意j和i都不能越界。
#include<stdio.h>
#include<string.h>
#define N 105
int main()
{
int n,p,m,t;
int f[105][105];
int i,j;
while(scanf("%d%d%d%d",&n,&p,&m,&t)!=EOF)
{
memset(f,0,sizeof(f));
f[0][p]=1;
for(i=0;i<=m;i++)
{
for(j=1;j<=n;j++)
{
if(j-1>0&&i-1>=0)
f[i][j]+=f[i-1][j-1];
if(j+1<=n&&i-1>=0)
f[i][j]+=f[i-1][j+1];
}
}
printf("%d\n",f[m][t]);
}
return 0;
}
文章结束给大家分享下程序员的一些笑话语录: 马云喜欢把自己包装成教主,张朝阳喜欢把自己包装成明星,李彦宏喜欢把自己包装成的很知性,丁磊喜欢把自己包装的有创意,李开复总摆出一副叫兽的样子。看来的。其实我想说,缺啥补啥,人之常情。

浙公网安备 33010602011771号