hdu 5673 卡特兰数,逆元
来源:互联网 发布:台湾娱乐圈知乎 编辑:程序博客网 时间:2024/05/16 04:56
<span style="font-size:18px;">//题目网址 http://acm.hdu.edu.cn/showproblem.php?pid=5673</span>
<span style="font-size:18px;">//以下参考过网上代码 http://m.blog.csdn.net/article/details?id=51227707</span>
<span style="font-size:18px;">#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;const int mod=1000000007,maxn=1000100;long long inv[maxn],h[maxn],c[maxn];void getinv()//求逆元{ int i; inv[1]=1; for(i=2;i<maxn;i++) { inv[i]=(mod-mod/i)*inv[mod%i]%mod; }}int main(){ int i,T,n,k; long long ans; getinv(); h[1]=h[0]=1; for(i=2;i<maxn;i++)//求卡特兰数(公式:c(n+1)=c(n)*(4*n-2)/(n+1)) { h[i]=h[i-1]*(4*i-2)%mod*inv[i+1]%mod; } scanf("%d",&T); while(T--) { scanf("%d",&n); ans=c[0]=1; for(i=1;i<=n;i++) { c[i]=c[i-1]*(n-i+1)%mod*inv[i]%mod;//求组合数(公式:c(n,i)=c(n,i-1)*(n-i+1)/i) //(可根据c(n,m)=n!/((n-m)!*m!)自己推) } for(i=1;;i++) { k=n-(i<<1); if(k<0)break; ans=(ans+h[i]*c[k])%mod; } printf("%lld\n",ans); } return 0;}</span>
0 0
- hdu 5673 卡特兰数,逆元
- HDU 4828 (卡特兰数+逆元)
- HDU-5673-Robot(卡特兰数+逆元 / 默慈金数)
- hdu-5184(卡特兰数 逆元)
- Counting Binary Trees - HDU 3240 卡特兰数+逆元
- hdu-5668- Circle 逆元+卡特兰数知识模板
- HDU 4828 Grids(卡特兰数+乘法逆元)
- 卡特兰数 hdu 5673
- hdu4828(卡特兰数+逆元)
- hdu5673Robot(卡特兰数+乘法逆元)
- hdu_4828_Grids(卡特兰数+逆元)
- HDU4828 卡特兰数+逆元
- 卡特兰数+逆元-HDU4828
- HDU 5673 Robot【卡特兰数】
- HDU 5673 Robot(卡特兰数)
- hdu 5673 线性求逆元+卡特兰数
- 2014百度之星初赛第一轮 HDU 4828 - Grids (卡特兰数 逆元)
- [HDU 5184][BestCoder #32]Brackets(卡特兰数+组合数学+乘法逆元)
- JAVA实现单链表的增删改查
- Unix系统编程(6) - I/O多路复用之select
- setjmp与longjmp使用(转载)
- [javascript权威指南][阅读笔记]八
- Python 点球小游戏
- hdu 5673 卡特兰数,逆元
- iOS设计模式(03):工厂方法
- 整型字符常量和字符字面量的区别 sizeof(char) 和 sizeof('a')
- 晏浩洋
- 数组_01
- Spark 2.0介绍:在Spark SQL中定义查询优化规则
- 215. Kth Largest Element in an Array
- JAVA原子性与可见性(一)
- 翻翻git之---低内存损耗,简单易用的汉字->拼音转换库 TinyPinyin