置置置换

已经提交 已经通过

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(2≤i≤n),若iii为奇数,则a[i−1]&lt;a[i]a[i - 1] &lt; a[i]a[i−1]<a[i],否则a[i−1]&gt;a[i]a[i - 1] &gt; a[i]a[i−1]>a[i]。请输出答案mod 1e9 + 7。

 
 

输入描述

一行一个整数nnn。

1≤n≤10001 \le n \le 10001≤n≤1000

输出描述

一行一个整数表示答案。

样例输入 1

3

样例输出 1

2

题意:

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

思路:

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

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

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<stack>
#include<set>
#include<vector>
#include<cmath> using namespace std;
typedef long long LL; const LL mod = 1e9 + ;
int n;
LL C[][];
LL A[]; void getC()
{
for(int i = ; i <= n; i++){
C[i][] = C[i][i] = ;
}
C[][] = ;
for(int i = ; i <= n; i++){
for(int j = ; j <= i / ; j++){
C[i][j] = C[i][i - j] = (C[i - ][j] + C[i - ][j - ]) % mod;
}
}
} void exgcd(LL a,LL b,LL& d,LL& x,LL& y)
{
if(!b) { d = a; x = ; y = ; }
else{ exgcd(b, a%b, d, y, x); y -= x*(a/b); }
} LL inv(LL a, LL p)
{
LL d, x, y;
exgcd(a, p, d, x, y);
return d == ? (x+p)%p : -;
} LL getA()
{
A[] = A[] = ; for(int i = ; i <= n; i++){
for(int k = ; k <= i - ; k++){
A[i] = (A[i] + C[i - ][k] * A[k] % mod * A[i - - k] % mod) % mod;
}
A[i] = A[i] * inv(, mod) % mod;
}
} int main()
{
scanf("%d", &n);
getC();
getA();
cout<<A[n]<<endl;
return ;
}

CCPC-Wannafly Winter Camp Day4 G---置置置换【递推】【组合数】【逆元】的更多相关文章

  1. 2020 CCPC Wannafly Winter Camp Day1 C. 染色图

    2020 CCPC Wannafly Winter Camp Day1 C. 染色图 定义一张无向图 G=⟨V,E⟩ 是 k 可染色的当且仅当存在函数 f:V↦{1,2,⋯,k} 满足对于 G 中的任 ...

  2. CCPC Wannafly Winter Camp Div2 部分题解

    Day 1, Div 2, Prob. B - 吃豆豆 题目大意 wls有一个\(n\)行\(m\)列的棋盘,对于第\(i\)行第\(j\)列的格子,每过\(T[i][j]\)秒会在上面出现一个糖果, ...

  3. 2020 CCPC Wannafly Winter Camp Day1 Div.1&amp F

    #include<bits/stdc++.h> #define forn(i, n) for (int i = 0; i < int(n); i++) #define fore(i, ...

  4. 2020 CCPC Wannafly Winter Camp Day1 - I. K小数查询(分块)

    题目链接:K小数查询 题意:给你一个长度为$n$序列$A$,有$m$个操作,操作分为两种: 输入$x,y,c$,表示对$i\in[x,y] $,令$A_{i}=min(A_{i},c)$ 输入$x,y ...

  5. 2020 CCPC Wannafly Winter Camp Day2-K-破忒头的匿名信

    题目传送门 sol:先通过AC自动机构建字典,用$dp[i]$表示长串前$i$位的最小代价,若有一个单词$s$是长串的前$i$项的后缀,那么可以用$dp[i - len(s)] + val(s)$转移 ...

  6. 2020 CCPC Wannafly Winter Camp Day1-F-乘法

    题目传送门 sol:二分答案$K$,算大于$K$的乘积有多少个.关键在于怎么算这个个数,官方题解上给出的复杂度是$O(nlogn)$,那么计算个数的复杂度是$O(n)$的.感觉写着有点困难,自己写了一 ...

  7. 2019 wannafly winter camp

    2019 wannafly winter camp Name Rank Solved A B C D E F G H I J K day1 9 5/11 O O O O O day2 5 3/11 O ...

  8. 2019 wannafly winter camp day 3

    2019 wannafly winter camp day 3 J 操作S等价于将S串取反,然后依次遍历取反后的串,每次加入新字符a,当前的串是T,那么这次操作之后的串就是TaT.这是第一次转化. 涉 ...

  9. 2019 wannafly winter camp day1-4代码库

    目录 day1 F div1 爬爬爬山 (最短路) B div2 吃豆豆 (dp) J div2 夺宝奇兵(暴力) J div1 夺宝奇兵 (权值线段树) C div1 拆拆拆数 E div1 流流流 ...

随机推荐

  1. SoapUI Pro Project Solution Collection-change the JDBC Request behavior

    change the jdbc request : 1.change the driver name,connection string,query string or assert. the obj ...

  2. Excel如何固定表头,任意一行

    在日常Excel操作中,有时候内容比较多,需要将表头固定才能方便查看.那么,该如何固定表头呢?或者说如何固定任意一行我们制定的呢?下面以Excel2013进行详细的步骤讲解. 首先打开需要操作的Exc ...

  3. JS 全屏代码

    // 推断各种浏览器,找到正确的方法 function launchFullscreen(element) { if(element.requestFullscreen) { element.requ ...

  4. django --- DetailView源码分析

    [背景] 最近在看django官方文档的class-based-views这一节的时候一直不得要领,感觉自己清楚,但是回想起来又没有脉络:于是没有办法只 能是“暗中观察”django的源码了. 刚打开 ...

  5. 揭开Docker的神秘面纱

    Docker 相信在飞速发展的今天已经越来越火,它已成为如今各大企业都争相使用的技术.那么Docker 是什么呢?为什么这么多人开始使用Docker? 本节课我们将一起解开Docker的神秘面纱. 本 ...

  6. 0x01 Spring Cloud 概述

    Spring Cloud Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分 ...

  7. anaconda的kernel对jupyter可见

    在anaconda的kernel下,安装nb_conda_kernels conda install nb_conda_kernels 参考这篇博客

  8. 线程安全的ConcurrentQueue<T>队列

    队列(Queue)代表了一个先进先出的对象集合.当您需要对各项进行先进先出的访问时,则使用队列.当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队. ConcurrentQueue< ...

  9. Go语言_iota用法

    一.介绍 iota,特殊常量,可以认为是一个可以被编译器修改的常量. 在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1. io ...

  10. snopy 数据库简介

    snoRNA ,small nucleolar RNA, 核仁小分子RNA, 是一类在细胞核内的small non-coding RNA, 长度在60-300nt, 其主要功能是调控其他小RNA分子( ...