我不用递归,用递推的写法就ok了,但是我感觉这个递归也没有问题啊,实在是找不出来问题,求大佬帮忙指点。
AC递推代码如下:
```cpp
#include <bits/stdc++.h>
#define f(i,a,b) for(int i=a;i<=b;i++)
#define g(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
using namespace std;
int n,m;
int dp[31][31];//dp[i][j]表示第j次传到第i个人的次数
//转移方程为dp[i][j] = dp[i-1][j-1] + dp[i+1][j-1]
//n个人,编号从0到n-1,lx表示前面一个人,ux表示后面一个人
int main(){
cin >> n >> m;
dp[0][0] = 1;
for(int j = 1;j <= m;j++) {
for(int i = 0;i < n;i++) {
dp[i][j] = dp[(i-1+n)%n][j-1] + dp[(i+1)%n][j-1];
}
}
cout << dp[0][m];
return 0;
}
```
by mooktian @ 2024-03-25 10:14:16