直接说做法,这是一个环形简单dp,假设小蛮为0号 所有人编号就变成0~n-1
用y总的dp分析法
可知状态的计算,但是别忘记+n%n因为j等于0的时候j-1是负数,数组没有负下标
初始化,dp[0][0]=1 表示传了0次球在小蛮手上的方案数量就有1种
最后的答案就是dp[m][0]
#include<bits/stdc++.h>
const int maxn = 35;
using namespace std;
int dp[maxn][maxn],n,m;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>m;
dp[0][0]=1;
for(int i=1;i<=m;i++)
for(int j=0;j<n;j++){
dp[i][j]=dp[i-1][(j-1+n)%n]+dp[i-1][(j+1+n)%n];
}
cout<<dp[m][0]<<endl;
return 0;
}