博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CCPC-Wannafly Winter Camp Day4 G---置置置换【递推】【组合数】【逆元】
阅读量:4557 次
发布时间:2019-06-08

本文共 1660 字,大约阅读时间需要 5 分钟。

置置置换

已经提交 已经通过

63.89%

Total Submission:72

Total Accepted:46

题目描述

 

wlswlswls有一个整数nnn,他想请你算一下有多少1...n1...n1...n的排列(permutation)满足:对于所有的i(2≤i≤n)i(2 \le i \le n)i(2in),若iii为奇数,则a[i−1]&lt;a[i]a[i - 1] &lt; a[i]a[i1]<a[i],否则a[i−1]&gt;a[i]a[i - 1] &gt; a[i]a[i1]>a[i]。请输出答案mod 1e9 + 7。

 

 
 

输入描述

 

一行一个整数nnn。

1≤n≤10001 \le n \le 10001n1000

 

输出描述

 

一行一个整数表示答案。

 

样例输入 1

3

样例输出 1

2

 

题意:

一个1……n的排列,问有多少种方案可以使得这个排列所有奇数位置的数都比偶数位置上的数要大。

思路:

wls和我们赛场上过的时候的方法都是用dp的。

$dp[i][j]$表示考虑前$i$个位置,第$i$个位置在剩下的数中是第$k$小的。(口胡)

 

 

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 11 using namespace std;12 typedef long long LL;13 14 const LL mod = 1e9 + 7;15 int n;16 LL C[1005][1005];17 LL A[1005];18 19 void getC()20 {21 for(int i = 1; i <= n; i++){22 C[i][0] = C[i][i] = 1;23 }24 C[1][1] = 1;25 for(int i = 2; i <= n; i++){26 for(int j = 1; j <= i / 2; j++){27 C[i][j] = C[i][i - j] = (C[i - 1][j] + C[i - 1][j - 1]) % mod;28 }29 }30 }31 32 void exgcd(LL a,LL b,LL& d,LL& x,LL& y)33 {34 if(!b) { d = a; x = 1; y = 0; }35 else{ exgcd(b, a%b, d, y, x); y -= x*(a/b); }36 }37 38 LL inv(LL a, LL p)39 {40 LL d, x, y;41 exgcd(a, p, d, x, y);42 return d == 1 ? (x+p)%p : -1;43 }44 45 LL getA()46 {47 A[0] = A[1] = 1;48 49 for(int i = 2; i <= n; i++){50 for(int k = 0; k <= i - 1; k++){51 A[i] = (A[i] + C[i - 1][k] * A[k] % mod * A[i - 1 - k] % mod) % mod;52 }53 A[i] = A[i] * inv(2, mod) % mod;54 }55 }56 57 int main()58 {59 scanf("%d", &n);60 getC();61 getA();62 cout<
<

 

转载于:https://www.cnblogs.com/wyboooo/p/10315699.html

你可能感兴趣的文章
Unable to instantiate prefab. Prefab may be broken.(Unity2018.2.2报错)
查看>>
Java中的TreeMap、Comparable、Comparator
查看>>
无刷新页面分页
查看>>
Mybatis(二)|搭建mybatis环境之注解版-简单搭配
查看>>
4.npm模块安装和使用(axios异步请求,lodash工具库)
查看>>
java的类加载机制816
查看>>
毕业生的未来
查看>>
sqlserver行转列
查看>>
PHP统计数组中所有的值出现的次数
查看>>
用canvas绘制花朵
查看>>
Java 7如期释出 重大功能延至第8版
查看>>
(-2147483648 > 0)?
查看>>
使用Spring的JAVA Mail支持简化邮件发送(转)
查看>>
2017-2018-1 20155336 《信息安全系统设计基础》第五周学习总结
查看>>
什么样的公司卖什么货!
查看>>
Control a MediaElement by Using a Storyboard
查看>>
AxInterop.VPIClient DLL注册
查看>>
信息安全系统设计基础第三周学习总结
查看>>
nodejs内存泄漏概要分析
查看>>
京东白条
查看>>