1581 A. CQXYM Count Permutations(思维)
Posted issue是fw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1581 A. CQXYM Count Permutations(思维)相关的知识,希望对你有一定的参考价值。
题意
给定 n n n,求 [ 1 , 2 n ] [1,2n] [1,2n]的全排列中,满足
有至少 n n n个 i i i满足 p i + 1 > p i p_{i+1}>p_i pi+1>pi的排列有多少种??
发现存在 k ( k > = n ) k(k>=n) k(k>=n)个 i i i满足 p i + 1 > p i p_{i+1}>p_i pi+1>pi
也就是存在 k ( k < n ) k(k<n) k(k<n)个 i i i不满足 p i + 1 > p i p_{i+1}>p_i pi+1>pi
条件是对称的,答案是所有排列数的一般
也就是 ( 2 n ) ! 2 \\frac{(2n)!}{2} 2(2n)!
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 3e5+10;
const int mod = 1e9+7;
int quick(int x,int n)
{
int ans = 1;
for( ; n ; n>>=1,x=x*x%mod )
if( n&1 ) ans = ans*x%mod;
return ans;
}
int n,fac[maxn];
signed main()
{
int t; cin >> t;
fac[0] = 1;
for(int i=1;i<=200000;i++) fac[i] = fac[i-1]*i%mod;
while( t-- )
{
cin >> n;
cout << fac[n*2]*quick( 2,mod-2 )%mod << endl;
}
}
以上是关于1581 A. CQXYM Count Permutations(思维)的主要内容,如果未能解决你的问题,请参考以下文章