• HDU 5698 瞬间移动 数学


    瞬间移动

    题目连接:

    http://acm.hdu.edu.cn/showproblem.php?pid=5698

    Description

    有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次你都可以选择一个右下方格子,并瞬移过去(如从下图中的红色格子能直接瞬移到蓝色格子),求到第n行第m列的格子有几种方案,答案对1000000007取模。

    http://acm.hdu.edu.cn/data/images/C702-1003-1.jpg

    Input

    多组测试数据。

    两个整数n,m(2≤n,m≤100000)

    Output

    一个整数表示答案

    Sample Input

    4 5

    Sample Output

    10

    Hint

    题意

    题解:

    数学题先打表,写个智障dp,然后看一看

    发现,哦 好像是个杨辉三角

    哦 好像答案就是C(n+m-4,n-2)啊

    交一发,诶 过了

    代码

    #include<math.h>
    #include<cstring>
    #include<algorithm>
    #include<stdio.h>
    using namespace std;
    const int maxn = 1e6+7;
    const int mod = 1e9+7;
    long long fac[maxn];
    long long qpow(long long a,long long b)
    {
        long long ans=1;a%=mod;
        for(long long i=b;i;i>>=1,a=a*a%mod)
            if(i&1)ans=ans*a%mod;
        return ans;
    }
    long long C(long long n,long long m)
    {
        if(m>n||m<0)return 0;
        long long s1=fac[n],s2=fac[n-m]*fac[m]%mod;
        return s1*qpow(s2,mod-2)%mod;
    }
    int n,m;
    int main()
    {
        fac[0]=1;
        for(int i=1;i<maxn;i++)
            fac[i]=fac[i-1]*i%mod;
        while(scanf("%d%d",&n,&m)!=EOF)
            printf("%lld
    ",C(n+m-4,n-2));
    }
  • 相关阅读:
    苹果常识
    Xcode相关路径
    iOS10 Xcode8问题汇总
    摇一摇
    手机端在线预览文件
    生成纯色色块
    django--没有整理,笔记
    httprunnermanager环境搭建 -----转
    httprunner---->最最基础小白笔记
    Oracle 多表联合删除?--转
  • 原文地址:https://www.cnblogs.com/qscqesze/p/5522357.html
Copyright © 2020-2023  润新知