瞬间移动

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 192    Accepted Submission(s): 99

Problem Description
有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次你都可以选择一个右下方格子,并瞬移过去(如从下图中的红色格子能直接瞬移到蓝色格子),求到第n行第m列的格子有几种方案,答案对1000000007取模。
aaarticlea/jpeg;base64,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g2sZPQO9hLIeqKOPUbfYbfYbfYbfYbfYbfYbfYbfYbfYbfYXYji0YxHajtR2o7UdqO1HajtR2o7UdqO1EcuEAk1REwisR2o7UdqO1HajtR2o7UdqO1EWnST4f7HajtR2o7UdqO1HajtR2o7UdqI8pURk9AgpTv1P8V3d3d3d3d3d3d3d3d3d3d3d3dFHWv8AyUdpru7u7u7u60WiJuf7P//aAAwDAQACAAMAAAAQ488888888888888888888888888oNMMMMBMMMMMMkMMMMMsMMMMMc8o+8888D888888U8888888888888o+8888D888888U8888888888888o+8888D888888U8888888888888o+8888D888888U8888888888888sLDDDD9xxxxxxRxxxxxRxxxxx+8o888889gBBBBBABBBBU5BBBBBf8o888889ABBBBBABBBBUpBBBBB/8AKPPPPPPQAQQQQQAQQQVKQQQQQf8Ayjzzzzz0AEEEEEAEEEFSkEEEEH/yjzzzzz0AEEEEEAEEEFSkEEEEH/yjzzzzz4MMMMMMUMMMNeEMMMMPbyjzzzzz5DDDDDDHDDDCSvDDDDB3yjzzzzz0AEEEEEAEEEFSkEEEEH/yjzzzzz0AEEEEEAEEEFSkEEEEH/yjzzzzz0AEEEEEAEEEFSkEEEEH/wAo888889ABBBBBABBBBUpBBBBB/wDKNPPPPPRDDDDDDDDDDGKDDDDDN/KLDDDDPeMccccU8cccZH8ccccXPKPPPPPPQAQQQQQAQQQVKQQQQQf/ACjzzzzz0AEEEEEAEEEFSkEEEEH/AMo888889ABBBBBABBBBUpBBBBB/8o888889ABBBBBABBBBUpBBBBB/8o888889ABBBBBABBBBUpBBBBB/8AKHPPPPL/ADzzzzz7zzzzz7zzzzzvzzzzzzzzzzzzzzzzzzzzzzzzzzzz/8QAJxEAAQEGBgIDAQAAAAAAAAAAAQARIDFhofAwcZGx0fEhgUBB4VH/2gAIAQMBAT8Q+YQCLWPoKT0Ck9ApPQKT0CYpDyYD41K2drD8albO1h+NStnaw/GpWztYfjFeRYAj+Kc1/FOa/inNfxTmv4h0Ij7UtqFLahS2oUtqFLahS2oRCGiGKW1CltQpbUKW1CltQokAUtqFLahS2oUtqFLahAGk3Api/Z9v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" alt="" />
 
 
 
Input
多组测试数据。

两个整数nm(2 <= n, m <= 100000)

 
 
 
Output
一个整数表示答案
 
Sample Input
4 5
 
Sample Output
10
 
Source
 
 
 
解析:首先可推出公式为C(n+m-4, n-2)对1000000007取模。接下来问题就转化为计算C(n+m-4, n-2) % 1000000007,而C(n+m-4, n-2) = (n+m-4)! / ((n-2)! * (m-2)!) % 1000000007,故需要求 (n-2)! 和 (m-2)! 的逆元。因为MOD = 1000000007为素数,则对应的逆元分别为 (n-2)!MOD-2 % MOD、(m-2)!MOD-2 % MOD。
最终结果为 (n+m-4)! * (n-2)!MOD-2 % MOD * (m-2)!MOD-2 % MOD。
 
 
 
 #include <cstdio>

 const int MOD = ;
int n, m;
long long f[]; //求阶乘
void init()
{
f[] = ;
for(int i = ; i <= ; ++i){
f[i] = f[i-]*i%MOD;
}
} long long quickpowmod(long long x, long long y)
{
long long ret = ;
while(y){
if(y&)
ret = ret*x%MOD;
x = x*x%MOD;
y >>= ;
}
return ret;
} int main()
{
init();
while(~scanf("%d%d", &n, &m)){
printf("%I64d\n", f[n+m-]*quickpowmod(f[n-], MOD-)%MOD*quickpowmod(f[m-], MOD-)%MOD);
}
return ;
}

1000000007

HDU 5698 瞬间移动的更多相关文章

  1. HDU 5698 瞬间移动 数学

    瞬间移动 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5698 Description 有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次 ...

  2. HDU 5698——瞬间移动——————【逆元求组合数】

    瞬间移动 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

  3. hdu 5698 瞬间移动(排列组合)

    这题刚看完,想了想,没思路,就题解了 = = 但不得不说,找到这个题解真的很强大,链接:http://blog.csdn.net/qwb492859377/article/details/514781 ...

  4. 【HDU 5698】瞬间移动(组合数,逆元)

    x和y分开考虑,在(1,1)到(n,m)之间可以选择走i步.就需要选i步对应的行C(n-2,i)及i步对应的列C(m-2,i).相乘起来. 假设$m\leq n$$$\sum_{i=1}^{m-2} ...

  5. 【HDU 5698】 瞬间移动

    [题目链接] 点击打开链接 [算法] 用f[i][j]表示走到(i,j)这个位置有多少种方案,因为走到(i,j)这个位置,上一步一定在它左上角的矩形中,所以, f(i,j) = sigma( f(x, ...

  6. HDU 5698 大组合数取模(逆元)

    瞬间移动 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

  7. hdu 5698(杨辉三角的性质+逆元)

    ---恢复内容开始--- 瞬间移动 Accepts: 1018 Submissions: 3620 Time Limit: 4000/2000 MS (Java/Others) Memory Limi ...

  8. 数论基础之组合数&计数问题

    一.组合数:问题引入:现在有 n 个球,取其中的 k 个球,问一共有多少种方式?答案: 公式直观解释:我们考虑有顺序地取出 k 个球:第一次有 n 种选择,第二次有 n-1 种选择,...,第 k 次 ...

  9. hdu 1269 迷宫城堡 强连通分量

    迷宫城堡 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

随机推荐

  1. 【网络】 NAT

    NAT(Network Address Translation,网络地址转换)是1994年提出的.当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因 ...

  2. DB天气app冲刺第九天

    今天已经是冲刺的第九天了.应该算是进入了冲刺的后半期了.今天的android界面UI设计基本完成了.但还是有一些的bug,自己怎么也调不好,明天需要请教一下大神去. 今天已经把昨天布置的任务完成了.昨 ...

  3. s3c2440之cache

    cache高速缓冲存储器注意与块设备页高速缓存进行区别,一个是硬件的实现一个是软件的实现,块设备页高速缓存. s3c2440/s3c2410里面主要有一个arm920t的核,但同时包含几个协处理器,协 ...

  4. bnu 4359 无爱编号(规律)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=4359 [题意]:输入N,表示几位数,0-这个N位数,有多少个满足条件的号码,不满足的情况为出现4,1 ...

  5. 配置单节点伪分布式Hadoop

    先写的这一篇,很多东西没再重复写. 一.所需软件 jdk和ubuntu都是32位的. 二.安装JDK 1.建jdk文件夹 cd usr sudo mkdir javajdk 2.移动mv或者复制cp安 ...

  6. Java 8 vs. Scala(一): Lambda表达式

    [编者按]虽然 Java 深得大量开发者喜爱,但是对比其他现代编程语言,其语法确实略显冗长.但是通过 Java8,直接利用 lambda 表达式就能编写出既可读又简洁的代码.作者 Hussachai ...

  7. 【leetcode】Longest Palindromic Substring (middle) 经典

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

  8. http://www.cnblogs.com/zhwl/p/3642486.html

    http://www.cnblogs.com/zhwl/p/3642486.html http://blog.csdn.net/hpf911/article/details/14165865

  9. 【mysql的设计与优化专题(2)】数据中设计中的范式与反范式

    设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小.但是有些时候一昧的追求范式减少冗余,反而会降低数据读写 ...

  10. thinkphp 分组

    分组 配置项: // 开启分组 'APP_GROUP_LIST'=>'Home,Admin', // 默认分组 'DEFAULT_GROUP'=>'Home', 涉及分组: 配置文件分组, ...