计蒜客 蒜头君的新游戏(DP)

匿名 (未验证) 提交于 2019-12-03 00:39:02

蒜头君的新游戏

#include <iostream> #include <string> #include <queue> #include <cstring> #include <cstdio> #include <cstdlib> #include <cassert> #include <algorithm>  #define maxn 35 using namespace std;  int n, m; long long dp[maxn][maxn];  int main() {     //freopen("data.in","r",stdin);     ios::sync_with_stdio(false);      cin >> n >> m;//n个人,传m次     memset(dp, 0, sizeof(dp));     //传递0次,娃娃在1号手上方案数     dp[0][1] = 1;     for(int j = 2; j <= n; ++j) {         dp[0][j] = 0;     }      for(int i = 1; i <= m; ++i) {//传递次数         for(int j = 1; j <= n; ++j) {//在j号人手上             if(j == 1) {                 dp[i][j] = dp[i-1][j+1] + dp[i-1][n];                 continue;             }              if(j == n) {                 dp[i][j] = dp[i-1][1] + dp[i-1][j-1];                 continue;             }              dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1];         }     }      cout << dp[m][1] << endl;     return 0; }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!