题目链接
思路:f[i][j]
表示传了i
次,且第i
次在第j
个小朋友手里的方案数
每个状态只能由左右两个小朋友转移而来
顾状态转移方程为:f[i][j]=f[i-1][(j-1+n)%n]+f[i-1][(j+1)%n]
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 40;
int f[N][N];
int n,m;
int main()
{
cin>>n>>m;
f[0][0]=1;
for(int i=1;i<=m;i++)
{
for(int j=0;j<n;j++)
{
f[i][j]=f[i-1][(j-1+n)%n]+f[i-1][(j+1)%n];
}
}
cout<<f[m][0]<<endl;
}