这题刚看完,想了想,没思路,就题解了 = =

  但不得不说,找到这个题解真的很强大,链接:http://blog.csdn.net/qwb492859377/article/details/51478117

  这个我只是看了他的思路,之后代码就自己写,之后交上去就是1A,我感觉好的题解就应该是这样的,Orz

  要先看下他的思路,现在我在补充些我的理解: 首先,你要把行,列分开看,先说行,从1到n,1和n都不能走,因为1是开始,n是确定的,所以你有n-2种选择,你可以枚举x从1到n-2,就相当于高中学的,在n-2个箱子中放x个相同小球,有几种情况?  同理,列也是,但注意在同一个x时他们还要相乘,这很明显,因为不可能相加。

  最后ans还要加1,因为从1,1直接到n,m的这种情况还没算。还有就是算C(n,k)了,这就是套模板了,没什么说的。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int INF=0x3f3f3f3f;
  5. typedef long long ll;
  6. #define PI(A) printf("%d\n",A)
  7. #define SI(N) scanf("%d",&(N))
  8. #define SII(N,M) scanf("%d%d",&(N),&(M))
  9. #define cle(a,val) memset(a,(val),sizeof(a))
  10. #define rep(i,b) for(int i=0;i<(b);i++)
  11. #define Rep(i,a,b) for(int i=(a);i<=(b);i++)
  12. #define reRep(i,a,b) for(int i=(a);i>=(b);i--)
  13. const double EPS= 1e- ;
  14.  
  15. /* ///////////////////////// C o d i n g S p a c e ///////////////////////// */
  16.  
  17. const int MAXN= + ;
  18. const int MOD=1e9+ ;
  19. ll jiech[MAXN];//求阶乘取完模的数组
  20.  
  21. int N,M;
  22.  
  23. //快速幂模板
  24. ll mod_pow(ll x,ll n,ll mod)
  25. {
  26. ll res=;
  27. while(n>){
  28. if (n&) res=res*x%mod;
  29. x=x*x%mod;
  30. n>>=;
  31. }
  32. return res;
  33. }
  34.  
  35. //求C(n,k)的函数 (n在C下面,k在C上面)
  36. //限制:MOD必须是质数,因为是用费马小定理求的
  37. ll C(int n,int k)
  38. {
  39. ll d=(jiech[k]*jiech[n-k])%MOD;
  40. return (jiech[n]*mod_pow(d,MOD-,MOD))%MOD;
  41. }
  42.  
  43. int main()
  44. {
  45. //先打表阶乘取模数组
  46. jiech[]=jiech[]=;
  47. for (int i=;i<MAXN;i++)
  48. {
  49. jiech[i]=(jiech[i-]*i)%MOD;
  50. }
  51.  
  52. while(~SII(N,M))
  53. {
  54.  
  55. int k=min(N,M);
  56. int k2=max(N,M);
  57. ll ans=;
  58. //要根据小的那个循环
  59. for (int i=;i<=k-;i++)
  60. {
  61. ans+=C(k-,i)*C(k2-,i);
  62. ans%=MOD;
  63. }
  64. printf("%lld\n",ans+);
  65. }
  66.  
  67. return ;
  68. }

hdu 5698 瞬间移动(排列组合)的更多相关文章

  1. hdu 4451 Dressing 排列组合/水题

    Dressing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  2. HDU 5698 瞬间移动 数学

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

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

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

  4. HDU 5698 瞬间移动

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

  5. 排列组合+组合数取模 HDU 5894

    // 排列组合+组合数取模 HDU 5894 // 题意:n个座位不同,m个人去坐(人是一样的),每个人之间至少相隔k个座位问方案数 // 思路: // 定好m个人 相邻人之间k个座位 剩下就剩n-( ...

  6. HDU 4497 GCD and LCM(分解质因子+排列组合)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4497 题意:已知GCD(x, y, z) = G,LCM(x, y, z) = L.告诉你G.L,求满 ...

  7. 排列组合 HDU - 1521 -指数型母函数

    排列组合 HDU - 1521 一句话区分指数型母函数和母函数就是 母函数是组合数,指数型母函数是排列数 #include<bits/stdc++.h> using namespace s ...

  8. ACM~排列组合&amp;&amp;hdu例子

    排列组合是数学中的一个分支.在计算机编程方面也有非常多的应用,主要有排列公式和组合公式.错排公式.母函数.Catalan Number(卡特兰数)等. 一.有关组合数学的公式 1.排列公式   P(n ...

  9. HDU 4045 Machine scheduling (组合数学-斯特林数,组合数学-排列组合)

    Machine scheduling Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

随机推荐

  1. mysql创建用户和创建数据库赋值用户操作权限

    mysql 进入mysqldb SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; ...

  2. scala言语基础学习四

    伴生对象 object方法构造函数只会执行一次.伴生对象和对象之间private对象可以互相访问 让object继承抽象类 apply方法 可以不new就构造对象 类似于var s = ArrayBu ...

  3. POJ1149 PIGS (网络流)

                                                                             PIGS Time Limit: 1000MS   M ...

  4. Promise 学习笔记

    所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise是一个对象,从它可以获取异步操作的消息.Promise提供统一的API, ...

  5. Mac上因磁盘格式导致gulp无限刷新问题

    今天遇到个超奇葩的问题,使用gulp.watch监控文件变化,但是并没有修改文件,却一直执行change,导致浏览器无限刷新 调试了10小时,代码各种删改,一直不得其解.切换到Windows运行,又正 ...

  6. Java-JDBC连接Oracle 数据库

    package com.zse.oracle; import oracle.jdbc.*; import java.sql.*; import javax.swing.text.html.HTMLDo ...

  7. linux包之bash之内置命令ulimit

    概述 [root@localhost ~]# rpm -qa|grep bashbash-4.1.2-15.el6_4.x86_64 linux limits.conf 配置 limits.conf ...

  8. USACO/gift1

    描述 对于一群(NP个)要互送礼物的朋友,GY要确定每个人送出的钱比收到的多多少. 在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人. 然而,在任何一群朋友中 ...

  9. morris.js 简单学习

    需要添加的引用脚本 <script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js&qu ...

  10. REG_SZ和REG_EXPAND_SZ的区别

    REG_SZ类型的键值中存在的可扩展占位符%xxx%不会被系统解释: REG_EXPAND_SZ类型的键值中存在的%xxx%的部分会被系统解释.