codeforces-57C Array(找规律+逆元)
来源:互联网 发布:彩影软件下载 编辑:程序博客网 时间:2024/05/16 18:23
题目链接:点击打开链接
题意:给出一个整数n,要求找到长度为n的数组,满足该数组的元素是有[1,n]内的任意元素组成的,且该数组为非递减数组或非递增数组,求满足条件的数组的总个数。
分析:因为非递减数组和非递增数组具有对称性,可以只讨论非递减数组的个数,设其为x,则总个数为2x-n(n为非递减数组和非递增数组交叉的部分,即既不递减也不递增)。
通过分析讨论结果可以得到总个数为C(2n,n)-n,注意求阶乘取模时要用到逆元。
#include<iostream>//一道规律题,结果是C(2n,n)-n#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>using namespace std;typedef long long ll;const int mod=1000000007;ll pow_mod(ll a,ll b,ll m){ ll d,t; d=1; t=a; while (b>0) { if (b%2==1) d=(d*t)%m; b/=2; t=(t*t)%m; } return d;}int main(){ ll n; while(~scanf("%I64d",&n)) { ll a=1; for(int i=n+1;i<=2*n;i++) a=(a*i)%mod; ll b=1; for(int i=1;i<=n;i++) b=(b*i)%mod; b=pow_mod(b,mod-2,mod)%mod; ll ans=a*b%mod-n; printf("%I64d\n",ans); } return 0;}
0 0
- codeforces-57C Array(找规律+逆元)
- Codeforces 57C Array dp暴力找规律
- CodeForces 631C Report(找规律)
- codeforces 24C 找规律
- Codeforces Round #264 (Div. 2)C(找规律)
- codeforces 560C Gerald's Hexagon(找规律)
- Codeforces - 337C(div2) - Harmony Analysis(找规律)
- CodeForces - 368C Sereja and Algorithm (找规律&模拟)
- CodeForces - 584C Marina and Vasya (模拟)找规律
- CodeForces 337C Quiz(1等比数列找规律)
- CodeForces - 202C Clear Symmetry (预处理模拟+找规律)
- CodeForces 152C Pocket Book(找规律+哈希)
- Codeforces 520C. DNA Alignment 找规律
- CodeForces 337C 找规律 ,等比数列求和
- codeforces-141【B找规律】【C思维】
- codeforces-743【B找规律】C思维】
- hdoj LCP Array 5635 (找规律)
- Codeforces 707 C. Pythagorean Triples(找规律)——Codeforces Round #368 (Div. 2)
- Ubuntu 手机开发培训准备
- 可重入函数和线程安全的区别与联系
- 转:Maven常用命令
- Cpp环境【Usaco2.1.3】【Vijos1222】顺序排分数
- mac下 iterm2配色方案
- codeforces-57C Array(找规律+逆元)
- redis的pconnect解析
- zynq Nand flash,QSPI,EMMC接口
- HDU5726 GCD
- Android事件分发机制(三)事件分发和消费
- The method setCharacterEncoding(String) is undefined for the type HttpServle
- destoon 上传多张照片,出现后面的图片上传不了解决办法
- jmap,jhat分析内存
- LintCode(容易)二进制求和