洛谷—— P1375 小猫
2017-11-25 20:54
267 查看
https://www.luogu.org/problemnew/show/1375
题目描述
有2n只小猫站成一圈,主人小明想把它们两两之间用绳子绑住尾巴连在一起。同时小明是个完美主义者,不容许看到有两根绳子交叉。请问小明有几种连线方案,可以把让所有小猫两两配对?
方案数很大,仅需输出方案数模1000000007(一个质数)的值。
数据范围:
60% N<=100
100% N<=100000
输入输出格式
输入格式:
输入一个整数n
输出格式:
输出方案数对1000000007取模的值
输入输出样例
输入样例#1: 复制3输出样例#1: 复制
5
卡特兰数组合公式C(2*n,n)-C(2*n,n-1)
#include <cstdio> #define LL long long inline void read(int &x) { x=0; register char ch=getchar(); for(; ch>'9'||ch<'0'; ) ch=getchar(); for(; ch>='0'&&ch<='9'; ch=getchar()) x=x*10+ch-'0'; } const int P(1000000007); LL fac[500005]; inline LL Pow(LL a,LL b) { LL ret=1; for(; b; b>>=1,a*=a,a%=P) if(b&1) ret*=a,ret%=P; return (int)ret; } LL C(LL n,LL m) { return fac *Pow(fac[m],P-2)%P*Pow(fac[n-m],P-2)%P; } int Presist() { int n; read(n); fac[0]=1; for(int i=1; i<=n<<1; ++i) fac[i]=1ll*fac[i-1]*i%P; printf("%lld\n",(C(n<<1,n)-C(n<<1,n-1)+P)%P); return 0; } int Aptal=Presist(); int main(int argc,char**argv){;}
相关文章推荐
- 洛谷 P1361 小猫爬山
- 洛谷——P1361 小猫爬山
- P1375 小猫(二飞的小憨猫)
- 【洛谷P1361】小猫爬山
- 洛谷 P1361 小猫爬山
- 洛谷 P2056 采花 - 莫队算法
- 【数论】洛谷P1414又是毕业季II
- 洛谷 P3128 [USACO15DEC]最大流Max Flow
- 洛谷 P2574 XOR的艺术(线段树 区间异或 区间求和)
- 洛谷 P1417 烹调方案
- BZOJ1270: [BeijingWc2008]雷涛的小猫 DP
- 洛谷——P3374 【模板】树状数组 1
- 洛谷——P1965 转圈游戏
- AC日记——逆序对 洛谷 P1908
- AC日记——可怜的狗狗 洛谷 P1533
- 今天见到一只小猫,好可怜.
- 洛谷 P1131 BZOJ 1060 [ZJOI2007]时态同步
- 小猫与小狗
- AC日记——餐巾计划问题 洛谷 P1084
- 小猫呜呜谈卸载Vista安装XP