一道组合数取模题
来源:互联网 发布:java泛型是什么 编辑:程序博客网 时间:2024/06/04 19:37
题目大意:求长度为n且每项均在[1,n]的不上升数列与不下降数列的个数和。
思路:总数就是不下降数列的个数*2-n(常数列的个数)
然后考虑不下降数列的个数
为了方便,把第0项设为0,把第n+1项设为n。
差分,然后不下降数列就是差分数组a[i]每一项大于等于0,且Σa[i]=n。
每项+1,就相当于在2n-1个空位(本来是2n+1,首尾不能放)放n个板子。
于是答案就是C(2n-1,n)*2-n
因为要取模,因为逆元可乘,所以上面和下面的阶乘都可以先乘起来再求逆元。
#include<cstdio>#include<cstring>#include<algorithm>const int mod=2000003;using namespace std;typedef long long ll;int n;ll qpow(ll a,int b){ll res=1;for (ll j=a;b;j=j*j%mod,b>>=1)if (b&1) res=res*j%mod;return res;}void work(int n){ll ans,A=1,B=1;for (int i=n;i<=2*n-1;i++) A=A*i%mod;for (int i=1;i<=n;i++) B=B*i%mod;for (int i=0;i<mod;i++)if (i*B%mod==A%mod){ans=i;break;}ans=((ans*2-n)%mod+mod)%mod;printf("%I64d\n",ans);}int main(){scanf("%d",&n),work(n);return 0;}
0 0
- 一道组合数取模题
- 一道组合数问题
- 一道组合题
- 一道组合问题的算法题
- 一道C语言面试题——邮票组合问题
- POJ 1011的一道题(木棍组合)
- 关于继承、组合、多态的一道面试题
- ACM: 一道组合数学的题 poj3252
- 一道狄利克雷卷积模板题的组合做法
- 一道有趣的排列、组合、数论、概率问题
- 一道关于组合的问题,例如ABCD,他们有多少种组合,请你输出来,算法有两种。
- 百度2013年校园招聘一道笔试题--三位密码组合问题递归求解
- 一道小题:从一个数组里产生所有可能的乘积组合
- 每日一道算法题:打印一维数组的所有组合
- 每天一道算法题(21)——字符串的全排列和组合算法
- 来自洛谷八月月赛的一道数学问题 - 子串和 - 组合数学
- 用Java ac的第一道题。。PAT乙级1056 组合数的和
- 每天一道LeetCode-----找到有多少个组合加起来和是n,每个组合的数字只能是1或者2
- Android 源代码分享
- scu1529: Equator (DP+贪心)
- 数据库之groupby、having、截取字符串
- myeclipse 2015 ci 添加tomcat图文教程
- 机房收费系统—上下机
- 一道组合数取模题
- 如何在Win8.1中找到系统原带的画图工具
- iOS 关于应用能打包但是不能提交至App Store的解决办法
- 四、机器学习系统设计笔记之主体模型
- 完全卸载oracle11g步骤
- Python 基础语法(二)
- HDU 4725 The Shortest Path in Nya Graph 建图加SPFA
- OC 自动释放池学习笔记
- 理解JMS规范中的持久订阅和非持久订阅