传球游戏

传球游戏

https://ac.nowcoder.com/acm/problem/16619

根据题意描述,知道状态的转移跟次数m和n有关,初步建立二维dp
读过题意之后dp[ i ][ j ]表示传了j次后到达i的方法数;
因为是个圆形,对于最后一个和第一个判定一下;
初始化dp[ 1 ][ 0 ]=1;
根据状态转移方程,dp[ i ][ j ]=dp[ i-1 ][ j-1 ] + dp[ i+1 ][ j-1 ];
所以在第i个传球j次时,其余数j-1这个状态一定已经计算过;所以外层循环为1~m;

#include<bits/stdc++.h>
using namespace std;
const int maxn=100;
int n,m,dp[maxn][maxn];
int main()
{
    cin>>n>>m;
    dp[1][0]=1;
    if(m==1) cout<<0<<endl;
    else{
        for(int i=1;i<=m;i++)
        {
            for(int j=1;j<=n;j++)
            {
                if(j==1) dp[j][i]=dp[j+1][i-1]+dp[n][i-1];
                else if(j==n) dp[j][i]=dp[j-1][i-1]+dp[1][i-1];
                else{
                    dp[j][i]=dp[j-1][i-1]+dp[j+1][i-1];
                }
            }
        }
       cout<<dp[1][m]<<endl;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 18:06
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务