DP之四

//sicily 1763. 传球游戏
#include<iostream> //DP
#include<cstring>
using namespace std;
int main()
{
int n,m,dp[100][100];
while(cin>>n>>m)
{
memset(dp,
0,sizeof(dp));
dp[
1][0]=1; //初始化,一开始球在 1 号手里
for(int j=1;j<=m;++j) //dp[i][j]表示球经传递 j 次后落在第 i 个同学的方案数
for(int i=1;i<=n;++i)
{
if(i==1)
dp[i][j]
=dp[2][j-1]+dp[n][j-1];
else if(i==n)
dp[i][j]
=dp[1][j-1]+dp[n-1][j-1];
else
dp[i][j]
=dp[i+1][j-1]+dp[i-1][j-1]; //状态转移方程
}
cout
<<dp[1][m]<<endl;
}
return 0;
}

  

posted on 2011-08-22 12:11  sysu_mjc  阅读(106)  评论(0编辑  收藏  举报

导航