解题关键:

1、此题用dp的方法可以看出,dp矩阵为杨辉三角,通过总结,可以得出 答案的解为$C_{n + m - 2}^{n - 1}$

2、此题可用组合数学的思想考虑,总的步数一共有$n+m-2$步,在这所有的步数中,需要选择向下走的步数的位置,由此可得,答案的解为:$C_{n + m - 2}^{n - 1}$

此题即可转化为大组合数取模问题;

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+;
ll mod_pow(ll x,ll n,ll p){
ll res=;
while(n){
if(n&) res=res*x%p;
x=x*x%p;
n>>=;
}
return res;
}
ll comb(ll n,ll m,ll p){
if(n==m) return ;
if(n<m) return ;
if(m>n-m) m=n-m; ll tn=,tm=;
while(m){
tn=tn*n%p;
tm=tm*m%p;
n--,m--;
}
return (tn*mod_pow(tm,p-,p)+mod)%mod;
}
int main(){
int n,m;
cin>>n>>m;
ll ans=comb(n+m-,n-,mod);
cout<<ans<<endl;
return ;
}

如下为dp的解法

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+;
int dp[][];
int main(){
int n,m;
cin>>n>>m;
for(int i=;i<=;i++){
dp[][i]=dp[i][]=;
}
for(int i=;i<=m;i++){
for(int j=;j<=n;j++){
dp[i][j]=(dp[i-][j]+dp[i][j-])%mod;
}
}
cout<<dp[m][n]<<endl;
}

[51nod1119]机器人走方格V2的更多相关文章

  1. 51nod1119 机器人走方格 V2

    终于学到了求组合数的正确姿势 //C(n+m-2,m-1) #include<cstdio> #include<cstring> #include<cctype> ...

  2. 51nod-1119 1119 机器人走方格 V2(组合数学+乘法逆元+快速幂)

    题目链接: 1119 机器人走方格 V2 基准时间限制:1 秒 空间限制:131072 KB    M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少种不同的走法?由于方法数量可能很 ...

  3. 51nod 1118 机器人走方格 解题思路:动态规划 & 1119 机器人走方格 V2 解题思路:根据杨辉三角转化问题为组合数和求逆元问题

    51nod 1118 机器人走方格: 思路:这是一道简单题,很容易就看出用动态规划扫一遍就可以得到结果, 时间复杂度O(m*n).运算量1000*1000 = 1000000,很明显不会超时. 递推式 ...

  4. 1119 机器人走方格 V2(组合)

    1119 机器人走方格 V2 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少种不同的走法?由于 ...

  5. 51nod 1119 机器人走方格 V2

    1119 机器人走方格 V2  基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少 ...

  6. 1119 机器人走方格 V2

    1119 机器人走方格 V2 基准时间限制:1 秒 空间限制:131072 KB M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少种不同的走法?由于方法数量可能很大,只需要输出Mo ...

  7. 1119 机器人走方格 V2 (组合数学)

    M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果.   Input 第1行,2个数M,N,中间用空格隔开 ...

  8. 51nod_1119:机器人走方格 V2

    题目链接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1119 转化成杨辉三角就好辣@_@ #include< ...

  9. 51nod 1119 机器人走方格 V2 【组合数学】

    挺水的但是我好久没写组合数了- 用这样一个思想,在1~m列中,考虑每一列上升几格,相当于把n-1个苹果放进m个篮子里,可以为空,问有几种方案. 这个就是一个组合数学经典问题了,考虑n个苹果放进m个篮子 ...

随机推荐

  1. error in static/js/xxx.js from UglifyJs Unpected token: punc() [static/js/xxx.js]

    出现问题 使用vue+element-ui+webpack开发项目时,Jenkins构建出现报错error in static/js/xxx.js from UglifyJs Unpected tok ...

  2. 说说JavaScript 中的new吧

    在其他语言中,new操作符都是用来实例化创建一个对象的,JavaScript 中同样如此,但是它又有一些不同.为了说清楚这个问题我们先来看一下JavaScript 中的类.原型.原型链.继承这些概念吧 ...

  3. Effective java -- 8 异常

    第五十七条:只针对异常的情况才使用异常应该都有这个意识吧,就像什么抓索引越界什么的,没有必要. 第五十八条:对可恢复情况使用受检查异常,对编程错误使用运行时异常三种可抛的异常:受检的异常(checke ...

  4. python用特殊方法定制类(不全)

    定义在class中不需要直接调用,python的某些函数或操作符会自动的调用对应的特殊方法. 1.python中 __str__和__repr__ __str__()用于显示给用户,而__repr__ ...

  5. 利用Tkinter做的自动生成JSONSchema的小工具

    前面讲到可以使用JSONSchema做json数据校验, 但是每个接口数据都手动写jsonschema太痛苦了, 就写了个小脚本,可以直接复制接口文档的mock数据然后生成一个简单的jsonschem ...

  6. iptables原理及使用教程

    注意 修改iptables可能导致连接断开, 对于远程连接的用户, 需要在经过充分测试后在修改, 对于懒人可以设置一个crontab, 在你修改iptables的过程中每隔30分钟清空一次iptabl ...

  7. eclipse中集成velocity插件

    1.打开eclipse,点击help,选择install new software 2.点击add,输入下载地址: http://download.eclipse.org/eclipse/update ...

  8. python基础-变量

    1.什么是变量? 其实就是给数据起个名字而已.在python中你不想要关心数据类型,因为在你赋值的时候它已经自己帮你识别了 2.创建变量时候会在内存中开辟一个空间,具体的细节不需要咱们关心,解释器会分 ...

  9. 数学建模--matlab基础知识

    虽然python也能做数据分析,不过参加数学建模,咱还是用专业的 1. Matlab-入门篇:Hello world! 程序员入门第一式: disp(‘hello world!’) 2. 基本运算 先 ...

  10. uimsbf和 bslbf的含义

    bslbf代表位串,即“Bit string, left bit first ”, uimsbf代表无符号整数,即”unsinged integer, most significant bit fir ...