HDU 5698:瞬间移动(排列组合)
来源:互联网 发布:客户采集软件 编辑:程序博客网 时间:2024/05/24 04:32
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5698
思路来源:http://blog.csdn.net/qwb492859377/article/details/51478117
AC代码:
#include <iostream>#include <stdio.h>#include <algorithm>using namespace std;typedef long long LL;const LL mod = 1000000007;const int maxn = 100010;LL JC[maxn];void createTable() { JC[0] = 1; for(int i = 1; i < maxn; i++) { JC[i] = (i*JC[i-1])%mod; }}LL resMod(LL x,LL pow) { LL ans,res; ans = 1; res = x; while(pow) { if(pow&1) { ans = (ans*res)%mod; } res = (res*res)%mod; pow = pow>>1; } return ans;}LL C(int n,int m) { LL temp = (JC[m]*JC[n-m])%mod; //求temp的逆元,由于mod是素数,因此可以用小费马定理求逆元 LL resTemp = resMod(temp,mod-2); LL ans = (JC[n]*resTemp)%mod; return ans;}int main() { int N,M; createTable(); while(~scanf("%d%d",&N,&M)) { int Min = min(N,M); int Max = max(N,M); LL ans = 0; for(int i = 0; i <= Min-2; i++) { ans += C(Min-2,i)*C(Max-2,i); ans = ans%mod; } printf("%lld\n",ans); } return 0;}
阅读全文
0 0
- HDU 5698:瞬间移动(排列组合)
- HDU 5698 瞬间移动
- HDU 5698 瞬间移动
- HDU 5698 瞬间移动
- HDU 5698-瞬间移动
- 排列组合 hdu5698 瞬间移动
- HDU-5698-瞬间移动(杨辉三角)
- hdu 5698瞬间移动(组合数取模、卢卡斯定理)
- Hdu 5698 瞬间移动【组合+逆元】
- hdu 5698 瞬间移动 -- (大组合数取模)
- HDU-5698-瞬间移动
- 51 mod P1627 瞬间移动 排列组合
- hdoj 瞬间移动 5698(逆元)
- hdu 5698 瞬间移动(2016"百度之星" - 初赛(Astar Round2B)——数学题)
- HDU 5698 瞬间移动 (2016"百度之星" - 初赛(Astar Round2B) 1003)
- hdu 5698 瞬间移动(杨辉三角+逆元+快速幂)
- HDU 5698 瞬间移动 (组合数 + 阶乘逆元)
- HDU 5698 瞬间移动(百度之星2016)
- 学习总结4
- LeetCode343 Integer Break
- PLSQL安装破解
- HDOJ 2566 统计硬币 (水)
- servlet写文件时发生错误
- HDU 5698:瞬间移动(排列组合)
- 1053. Path of Equal Weight (30)
- andriod——Retrofit+Fresco+MVP网络获取数据
- 通过例子学习spark dataframe -- transformations函数(1)
- mysql半同步复制
- 机房收费系统——上机操作
- 图的遍历(DFS)
- 末尾0的个数
- 人伦是否适用于AI?