zoj-3624(Count Path Pair)组合数+乘法逆元
来源:互联网 发布:高档咖啡品牌 知乎 编辑:程序博客网 时间:2024/06/05 15:37
题意:给你4个点A(0,0),B(p,0),C(m,q),D(m,n)问:A-->D&& B-->C在不相交的情况下有多少种方法
此题在比赛中题目理解错了,英语水平还是太弱,比了几场都没提高,唉
算了还是看题解吧:解决此题就是找出A--D&&B-->C的所有情况再减去 A-->C&&B-->D(即路径相交的情况)
就是本题要求的答案
公式:C(m+n,n)*C(m-p+q,q) - C(m+q,q)*C(m+n-p,n)
本题还会涉及到(A/B)%C的情况,运用扩展欧几里得求乘法逆元得到结果
由于写过几遍了此公式,不再细讲
代码:
#include<stdio.h>#include<math.h>#include<algorithm>using namespace std;typedef long long LL;const LL mod = 100000007;long long a[200005];LL m,n,p,q,x,y;void init(){ a[0] = 1; for(LL i = 1;i <= 200001;i++) a[i] = ( a[i-1] * i )%mod;}void exgcd(LL c,LL b){ if(b == 0) { x = 1,y = 0; } else { exgcd(b,c%b); LL tmp = x; x = y; y = tmp - c/b*y; }}void solve(){ LL res = (((a[m+n] * a[m-p+q])%mod - (a[m+q]*a[m+n-p])%mod)%mod + mod )%mod; LL ret = ((a[n]*a[m])%mod)*((a[m-p]*a[q])%mod)%mod; exgcd(ret,mod); x = (x+mod)%mod; printf("%lld\n",(x*res%mod));}int main(){ init(); while(~scanf("%lld%lld%lld%lld",&m,&n,&p,&q)) { solve(); }}
0 0
- zoj-3624(Count Path Pair)组合数+乘法逆元
- ZOJ 3624 Count Path Pair (组合计数,乘法逆元)
- [组合数取模-逆元计算模板] zoj 3624 Count Path Pair
- ZOJ 3624 Count Path Pair(组合计数)
- ZOJ 3841 Cards (组合数+乘法逆元)
- hdu5651(乘法逆元&&组合数)
- ssoj2431 棋盘路径(乘法逆元+组合数)
- lightoj 1067 - Combinations (组合数、乘法逆元)
- HDU5894分位置(组合数,lucas,乘法逆元)
- zoj 3638 Fruit Ninja(多重集组合+乘法逆元+容斥原理)
- Count Path Pair
- Ural 1903 Unidentified Ships 组合数 + 乘法逆元
- bzoj1004(组合+乘法逆元)(简便)
- hdu 3037 求组合数(卢卡斯定理+乘法逆元)
- CodeForces 300C Beautiful Numbers(乘法逆元/费马小定理+组合数公式+快速幂)
- ZOJ 3609 Modular Inverse(求最小乘法逆元)
- Lucas定理+乘法逆元+组合数学(hdu5226)
- ssoj1306卡农(canon)(组合数学+乘法逆元)
- 【设计模式】原型模式
- HDOJ 2035.人见人爱A^B
- 思想“一念之间”,读书笔记
- JavaWeb开发编码系列(一)—— 编码问题前奏--扫盲贴
- hdu2444 二分图判定+匹配
- zoj-3624(Count Path Pair)组合数+乘法逆元
- 黑马程序员——IO/输入输出
- 企业内部软件开发的特点和模式
- 14 0502
- Adb驱动装好,但adb devices找不到设备
- Unity怎样获得 shader 为 Self-Illumin/Diffuse 的alpha值
- 重新獲取ip的命令
- 外媒总结马航失联报告3大看点 劫机可能增加
- Cookie 与session