zoukankan      html  css  js  c++  java
  • 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


    //挺懵逼的,虽然看出动规后是个杨辉三角,但不知道
    杨辉三角的性质,第 n 行 第 m 位为 C(n-1,m-1) 这也是组合数递推的性质 C(n,m)=C(n-1,m)+C(n-1,m-1)
    输出 C(n+m-2,m-1) 即可
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 #define LL long long
     4 #define MOD 1000000007
     5 
     6 LL n,m;
     7 
     8 LL qk_mi(LL a,LL b)
     9 {
    10     LL res=1;
    11     while (b)
    12     {
    13         if (b&1) res = res*a%MOD;
    14         a=a*a%MOD;
    15         b/=2;
    16     }
    17     return res;
    18 }
    19 
    20 LL J(int x)
    21 {
    22     LL res=1;
    23     for (int i=2;i<=x;i++)
    24         res=res*i%MOD;
    25     return res;
    26 }
    27 
    28 LL C(LL x, LL y)
    29 {
    30     return J(x)*qk_mi(J(y)*J(x-y)%MOD,MOD-2)%MOD;
    31 }
    32 
    33 int main()
    34 {
    35     scanf("%lld%lld",&n,&m);
    36     LL ans = C(n+m-2,m-1);
    37     printf("%lld",ans);
    38     return 0;
    39 }
    View Code
     
  • 相关阅读:
    webpack性能优化-PWA(离线访问技术)
    node增删改查
    webpack性能优化
    webpack常见配置
    第一个node接口
    $refs的解释
    vue路由传参的三种基本方式
    结构体的定义
    gcc 的编译流程 和gdb的调试方法
    makefile高级用法
  • 原文地址:https://www.cnblogs.com/haoabcd2010/p/7582252.html
Copyright © 2011-2022 走看看