瞬间移动

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. [译] ASP.NET 生命周期 – ASP.NET 上下文对象(六)

    使用 HttpApplication 对象 ASP.NET 框架中的许多类都提供了许多很方便的属性可以直接映射到 HttpContext 类中定义的属性.这种交叠有一个很好的例子就是 HttpAppl ...

  2. 黑马程序员 c#单态的设计模式 (专题二)

    <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a> ...

  3. 详解C#中的反射(转载)

    反射(Reflection) 2008年01月02日 星期三 11:21 两个现实中的例子: 1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况.这是如何做到的呢?B超是 ...

  4. 首页banner焦点图自动轮播效果

    今天来介绍一下我前两天写一个小任务的时候遇到的一些问题,如果能够有所帮助或者启发,那将是我的荣幸. <div class="banner"> <a class=& ...

  5. Hibernate一对一单向外键关联

    一.一对一单向外键关联: 一对一单向外键关联主要用到了以下两个注解: 1.OneToOne(cascade=CasecadeTYPE.ALL); cascade=CasecadeTYPE.ALL:表示 ...

  6. 跨平台Unicode与UTF8互转代码

    参考来源:http://blog.csdn.net/flying8127/article/details/1598521 在原来原基础上,将代码整理,并加强安全性. 并按照WindowsAPI设计, ...

  7. NYOJ 题目15 括号匹配(二)(区间DP)

    点我看题目 题意 : 中文题不详述. 思路 : 本来以为只是个小模拟,没想到是个区间DP,还是对DP不了解. DP[i][j]代表着从字符串 i 位置到 j 位置需要的最小括号匹配. 所以初始化的DP ...

  8. android 图片画画板

    canvas.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...

  9. json中jobject

    Json.net codeplex :http://www.codeplex.com/Json 原本感觉Newtonsoft.Json和.net自己的JavaScriptSerializer相差无几, ...

  10. java 转换 小函数(不断增加中。。。)

    //char数组转换成byte数组 private byte[] getBytes (char[] chars) { Charset cs = Charset.forName ("UTF-8 ...