题解 | #走方格的方案数#

走方格的方案数

https://www.nowcoder.com/practice/e2a22f0305eb4f2f9846e7d644dba09b

#include <stdio.h>

int main() {
    int a, b;
    while (scanf("%d %d", &a, &b) != EOF) { 
        int dp[a+1][b+1];
        dp[0][0]=1;
        for(int i=0;i<=a;i++)
        {
            for(int j=0;j<=b;j++)
            {
                if((i!=0&&j==0)||(i==0&&j!=0))
                {
                    dp[i][0]=1;
                    dp[0][j]=1;
                    continue;
                }
                dp[i][j]=dp[i-1][j]+dp[i][j-1];
            }
        }
        printf("%d\n", dp[a][b]);
    }
    return 0;
}

使用动态规划解题,设dp[i][j]为到达坐标(i,j)处的走法。通过任意选一点坐标稍微研究下,可以得到

dp[i][j]=dp[i-1][j-1]+dp[i][j-1](i!=0或j!=0);

若i=0或者j=0的坐标,由于题目规定只能向下或者向右,且不能返回,所以这些点的走法就只能有一种,即

dp[0][j]=1;

dp[i][j]=1;

这道题就顺利解决了

全部评论

相关推荐

看到这个内容真是闹麻了。。。。。。现在有了AI以后很多人面试都会作弊吗?&nbsp;那对老老实实面试的人岂不是不公平....
程序员牛肉:公平那是对小孩子讲的童话故事,成年人的世界只有能不能接受失败的后果。 你要是能接受面试作弊被发现之后多家公司联合永久拉黑的后果,你就搞。
你找工作的时候用AI吗?
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 10:39
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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