• 51nod 1118 机器人走方格【dp】


    M * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。

     收起

    输入

    第1行,2个数M,N,中间用空格隔开。(2 <= m,n <= 1000)

    输出

    输出走法的数量。

    输入样例

    2 3

    输出样例

    3

    思路:这道题也是较简单的,由于机器人只能向下或者向右走,所以在最后一步即右下时,它有两种途径,即从它左边或者上边到达的。

    另dp[i][j]表示走到(i,j)点的路径数目,可以得到递推式:dp[i][j]=dp[i-1][j]+dp[i][j-1];

    另外要处理一下边界,另第一行和第一列都为1,其实不难理解,边界的路径数目都为1。

    #include<cstdio>
    #include <iostream>
    using namespace std;
    const int mod=1e9+7;
    const int maxn=1005;
    int dp[maxn][maxn];
    int main()
    {
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=0;i<n;++i)
            dp[i][0]=1;
        for(int j=0;j<m;++j)
            dp[0][j]=1;
        for(int i=1;i<n;++i)
            for(int j=1;j<m;++j)
                dp[i][j]=(dp[i-1][j]+dp[i][j-1])%mod;
        printf("%d
    ",dp[n-1][m-1]);
        return 0;
    }
    
  • 相关阅读:
    欧拉代码005
    欧拉计划003
    欧拉计划004
    欧拉计划006
    欧拉计划002
    LINUXS3C2440SJA1000驱动程序笔记
    WPF实现窗体内容分割
    InotifyPropertyChanged接口实现简单数据绑定
    C#的6种常用集合类大比拼
    WPF获取窗体或控件句柄
  • 原文地址:https://www.cnblogs.com/aerer/p/9930913.html
Copyright © 2020-2023  润新知