51Nod1119机器人走方格(费马儿定理+快速幂函数) 好题
来源:互联网 发布:单片机第二章答案详解 编辑:程序博客网 时间:2024/06/02 11:41
题目:
M * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。
Input
第1行,2个数M,N,中间用空格隔开。(2 <= m,n <= 1000000)
Output
输出走法的数量 Mod 10^9 + 7。
Input示例
2 3
Output示例
3
个人感觉是一道好题。
从大神博客学得。http://blog.csdn.net/h1021456873/article/details/49587483
另一种解法(效率稍微高点,扩展欧几里德) http://blog.csdn.net/h1021456873/article/details/49402147
<span style="font-size:24px;">#include"stdio.h"#include"stdlib.h"#include"string.h"#include"algorithm"#include"math.h"const int maxn= 1000000+5;const int mod=1e9+7; //注意这种写法 long long f[maxn*2+5];void Init(){f[0]=1;for(int i=1;i<=2*maxn;i++)f[i]=(f[i-1]*i)%mod;}long long pow(long long a,long long n){if(n==0) return 1;long long x=pow(a,n/2);long long ans=x*x%mod;if(n%2==1) ans=ans*a%mod;return ans;}/*long long pow(long long n,long long m ) //另一种快速幂非递归写法 {long long ans = 1; while(m > 0) { if(m & 1)ans = (ans * n) % mod; m = m >> 1; n = (n * n) % mod; } return ans; }*/long long solve(int n,int m){long long ans=f[n-1+m-1];ans=(ans*pow(f[n-1],mod-2))%mod;ans=(ans*pow(f[m-1],mod-2))%mod;return ans;}int main(){Init();int n,m;scanf("%d%d",&n,&m);printf("%lld",solve(n,m)); return 0;}</span><span style="font-size:24px;">如果有从这里学习到,请鼓励我一下吧,顶一个。</span>
1 0
- 51Nod1119机器人走方格(费马儿定理+快速幂函数) 好题
- 51nod1119 机器人走方格 v2 费马小定理求逆元
- 51nod1119 机器人走方格 组合数学
- 【51Nod】1119 - 机器人走方格V2(逆元 & 费马小定理 & 快速幂)
- 【51node】-1119- 机器人走方格(费马小定理,逆元,快速幂)
- 51Nod 1118 机器人走方格(dp/快速幂)
- 51nod 1119 机器人走方格V2(求组合数,费马小定理+快速幂/逆元+gcd)
- 51nod 1119 机器人走方格 V2(费马小定理+快速幂 求逆元)
- 51nod 1119 机器人走方格(费马小定理)
- 51nod 1119 机器人走方格(费马小定理)
- 51nod 1122 机器人走方格 V4(矩阵快速幂)
- 51nod 1122 机器人走方格 V4[矩阵快速幂]
- 51nod 1119 机器人走方格V2 lucas定理
- 51NOD 1120 机器人走方格 V3(卢卡斯定理 + 非降路径)
- 51nod 1120 机器人走方格 V3(卡特兰数,lucas定理)
- 51nod 1120 机器人走方格 V3 lucas+卡特兰+逆原 好题
- 51nod 1118 机器人走方格 & 1119 机器人走方格 V2(排列组合)
- 51 Nod 机器人走方格
- 51Nod(1256乘法逆元逆元)
- 8633回文划分
- Nose+Jekins进行测试和持续集成
- LeetCode_46 Permutations
- LeetCode_47 Permutations II
- 51Nod1119机器人走方格(费马儿定理+快速幂函数) 好题
- printd函数的编写(递归)
- 使用python建立数据层模块,致敬廖雪峰老师
- LeetCode_60 Permutation Sequence
- CF618D - Hamiltonian Spanning Tree
- 【Leetcode】Binary Tree Level Order Traversal II
- 51Nod 1181 质数中的质数(质数筛选好题)(数论)
- LeetCode_77 Combinations
- LeetCode_78 Subsets