51nod1119 机器人走方格 组合数学
来源:互联网 发布:u盘数据恢复后打不开 编辑:程序博客网 时间:2024/05/18 03:32
M * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。
题目本身很简单,就是一个初中都推倒过的理论,只能向下或者向右的话,那么可能的路径一共有C(n+m,n)种。很好理解的这里就不说明了。现在我们要解决的是,当n和m都比较大的时候怎么讲结果计算出来。
#include <cmath>#include <iostream>#include <cstring>#include "minmax.h"#include <cstdio>using namespace std ;#define LL long long#define p 1000000007LL n, m;LL quick_mod(LL a, LL b){LL ans = 1;a %= p;while (b){if (b & 1){ans = ans * a % p;b--;}b >>= 1;a = a * a % p;}return ans;}LL C(LL n, LL m){if (m > n) return 0;LL ans = 1;for (int i = 1; i <= m; i++){LL a = (n + i - m) % p;LL b = i % p;ans = ans * (a * quick_mod(b, p - 2) % p) % p;}return ans;}LL Lucas(LL n, LL m){if (m == 0) return 1;return C(n % p, m % p) * Lucas(n / p, m / p) % p;}int main(){while (cin>>n>>m){LL a = n + m - 2;LL b = min(n, m) - 1;printf("%I64d\n", Lucas(a,b));}return 0;}
0 0
- 51nod1119 机器人走方格 组合数学
- 51nod1119 机器人走方格 v2 费马小定理求逆元
- 51nod 1118 机器人走方格(组合数学)
- 51nod-1119 机器人走方格(组合数学,离散数学)
- 51Nod 1119 机器人走方格 组合数学
- 51Nod1119机器人走方格(费马儿定理+快速幂函数) 好题
- 51 NOD 1119 机器人走方格 V2(组合数学 + 逆元)
- 51nod 1119 机器人走方格 V2【组合数学+逆元】
- 51nod 1122 机器人走方格 V4【组合数学】【矩阵乘法】
- 51nod 1120 机器人走方格V3(组合数学+卡特兰数+Lucas)
- 51nod_1118 机器人走方格(组合数+逆元)
- 51Nod 1119 机器人走方格 V2 组合
- 51 Nod 机器人走方格
- 机器人走方格 51Nod
- 51nod 1119 机器人走方格 V2 (求组合数__模板)
- 51nod 1118 机器人走方格(组合数【逆元】,dp)
- 51nod 1119 机器人走方格 V2 费马小定理求组合数
- 1118 机器人走方格 DP 或者组合数+逆原
- LVS负载均衡群集之NAT模型&&DR模型
- html5中audio标签在不同平台下的问题
- tomcat配置出现问题
- Junit4 整合 Spring
- 手机移动端可滚动的导航代码--css解决方案
- 51nod1119 机器人走方格 组合数学
- Android Studio 下载&快捷键一览
- Maven配置和打包以及使用Eclipse构建Maven项目
- React Native控件之Switch开关与Picker选择器组件讲解以及使用
- iOS开发 ☞ 上架常见问题
- httperf下载
- 面试:数组:产生随机数
- ContentProvider实例详解
- Hive实现分页的方法