【51Nod】1119 - 机器人走方格V2(逆元 & 费马小定理 & 快速幂)
2016-08-12 11:19
316 查看
点击打开题目
1119 机器人走方格 V2
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
收藏
关注
M * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。
Input
Output
Input示例
Output示例
这个以前做过类似的,就是求组合数的问题,我们打一个逆元表和一个阶乘表就行了。
代码如下:
#include <stdio.h>
#include <cstring>
#include <algorithm>
using namespace std;
#define CLR(a,b) memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define LL long long
const int mod = 1000000007;
int fac[2000005];
int inv[2000005];
int quick_mod(int a,int b)
{
int ans = 1;
while (b)
{
if (b & 1)
ans = (LL)ans * a % mod;
a = (LL)a * a % mod;
b >>= 1;
}
return ans;
}
void getFac()
{
fac[0] = inv[0] = 1;
for (int i = 1 ; i <= 2000000 ; i++)
{
fac[i] = ((LL)fac[i-1] * i) % mod;
inv[i] = quick_mod(fac[i] , mod-2);
}
}
int C(int a,int b)
{
return (LL)fac[a] * ((LL)inv[b] * inv[a-b] % mod) % mod;
}
int main()
{
getFac();
int n,m;
while (~scanf ("%d %d",&n,&m))
printf ("%d\n",C(n+m-2,n-1));
return 0;
}
1119 机器人走方格 V2
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
收藏
关注
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
这个以前做过类似的,就是求组合数的问题,我们打一个逆元表和一个阶乘表就行了。
代码如下:
#include <stdio.h>
#include <cstring>
#include <algorithm>
using namespace std;
#define CLR(a,b) memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define LL long long
const int mod = 1000000007;
int fac[2000005];
int inv[2000005];
int quick_mod(int a,int b)
{
int ans = 1;
while (b)
{
if (b & 1)
ans = (LL)ans * a % mod;
a = (LL)a * a % mod;
b >>= 1;
}
return ans;
}
void getFac()
{
fac[0] = inv[0] = 1;
for (int i = 1 ; i <= 2000000 ; i++)
{
fac[i] = ((LL)fac[i-1] * i) % mod;
inv[i] = quick_mod(fac[i] , mod-2);
}
}
int C(int a,int b)
{
return (LL)fac[a] * ((LL)inv[b] * inv[a-b] % mod) % mod;
}
int main()
{
getFac();
int n,m;
while (~scanf ("%d %d",&n,&m))
printf ("%d\n",C(n+m-2,n-1));
return 0;
}
相关文章推荐
- 51nod 1118 机器人走方格 解题思路:动态规划 & 1119 机器人走方格 V2 解题思路:根据杨辉三角转化问题为组合数和求逆元问题
- 【51nod】--机器人走方格V2(组合数学&&逆元&&费马小定理)
- 51nod 1119 机器人走方格V2(求组合数,费马小定理+快速幂/逆元+gcd)
- 机器人走方格 V2 51Nod - 1119 组合数学+逆元
- 51nod 1119 机器人走方格 V2 费马小定理求组合数
- 51nod 1118 机器人走方格 & 1119 机器人走方格 V2(排列组合)
- 51nod 1119 机器人走方格 V2【组合数学+逆元】
- 51nod 1119 机器人走方格 V2(费马小定理+快速幂 求逆元)
- 51nod 1119 机器人走方格 V2
- 51nod-1119 1119 机器人走方格 V2(组合数学+乘法逆元+快速幂)
- 51Nod-1119-机器人走方格 V2
- 51nod 1119 机器人走方格 V2 【组合数学】
- 51nod 1119 机器人走方格 V2
- 51nod--1119 机器人走方格 V2
- 51nod 1119 机器人走方格(费马小定理)
- 51nod 1119 机器人走方格 V2
- 51nod 1119 机器人走方格 v2
- 51nod-【1119 机器人走方格 V2】
- 51Nod 1119 机器人走方格 V2
- 51 NOD 1119 机器人走方格 V2(组合数学 + 逆元)