首页 > 其他分享 >UVA1485 Permutation Counting

UVA1485 Permutation Counting

时间:2023-10-28 12:14:17浏览次数:38  
标签:排列 Counting 个数 Permutation 长度 UVA1485

传送门

description

一个长度为 \(n\) 的排列 \(a\),其权值为满足 \(a_i>i\) 的位置的数量。

求权值恰为 \(k\) 的长度为 \(n\) 的排列的方案数。

  • \(n,k\leq 1000\)

solution

设 \(f_{i,j}\) 表示考虑前 \(i\) 个数,钦定 \(j\) 个满足 \(a_i>i\),这 \(j\) 个数排列的方案数。有转移:

  • \(f_{0,0}=1\)

  • \(f_{i,j}=f_{i-1,j}+(i-j)f_{i-1,j-1}\)

剩下的 \(n-j\) 个数随便排,乘个阶乘就行,然后再二项式反演。

标签:排列,Counting,个数,Permutation,长度,UVA1485
From: https://www.cnblogs.com/FreshOrange/p/17793933.html

相关文章

  • [ABC299G] Minimum Permutation
    ABC229G洛谷链接atcoder链接容易发现如果最终答案有两个相邻的数\(b_i,b_{i+1}\)满足\(b_i>b_{i+1}\)且\(b_i\)之后出现过,则显然可以找到另一个不劣的答案不满足这个性质先说一个错误的结论:从前往后考虑,用链表维护答案,对于加入的一个数\(a_i\),如果之前在\(a_j\)出现......
  • #dp,二项式反演,容斥#CF285E Positions in Permutations
    题目问有多少个长度为\(n\)的排列\(P\)满足\(|P_i-i|=1\)的\(i\)的个数恰好为\(k\)个分析设\(dp_{i,j,k}\)表示前\(i\)个数钦定\(j\)个数满足上述条件且现在\(i\)和\(i+1\)因此被占用的方案数。那么第\(i\)个满足上述条件无非就是放入\(i-1\)或者\(......
  • PAT_A1049 Counting Ones【困难】
    Thetaskissimple:givenanypositiveinteger N,youaresupposedtocountthetotalnumberof1'sinthedecimalformoftheintegersfrom1to N.Forexample,given N being12,therearefive1'sin1,10,11,and12.InputSpecification:Eac......
  • SP13015 CNTPRIME -Counting Primes
    \(CNTPRIME\)-\(Counting\)\(Primes\)题目描述给定初始序列\(A\),然后对原序列有以下操作:操作\(1\):0lrv将区间\([l,r]\)全赋值为\(v\)。操作\(2\):1lr查询区间\([l,r]\)注意:多组测试和特殊的输出。题目分析:就是一道板子题,首先我们先用欧拉筛筛出值域\([2,10^6]\)内的......
  • CF1542E2 Abnormal Permutation Pairs (hard version) 题解
    AbnormalPermutationPairs(hardversion)两个限制:字典序小、逆序对大,一个显然的想法就是确保一对关系,统计另一对关系。确保哪一对呢?我们想了想,决定确保字典序小,因为字典序是可以贪心的。具体而言,我们考虑两个排列自第\(i\)位开始出现了不同。这样子,我们便将两个排列各自划......
  • Codeforces Round 884 (Div. 1 + Div. 2) B. Permutations & Primes
    给一个正整数\(n\),你需要构造一个\(n\)的排列\(p_1,p_2,\cdots,p_n\)。对于排列\(p\)的每个子段\([l,r]\),\(mex_{i=l}^{r}a_i\)的结果为质数的次数尽可能多。此处的\(mex\)最小排除值最低为\(1\)而非\(0\)。不难想到,小质数\(2,3\)容易构造。于是有......
  • 【前缀和优化 dp】CF1542E2 Abnormal Permutation Pairs (hard version) 题解
    CF1542E2首先时间复杂度肯定是\(\mathcal{O}(n^3)\)的。容易想到先枚举最长公共前缀,然后枚举\(p_{len+1}\)和\(q_{len+1}\),再枚举逆序对数进行统计。令\(f_{i,j}\)表示有\(j\)个逆序对的\(i\)阶排列的个数。易得转移\(f_{i,j}=\sum\limits_{k=\max(j-i+1,0)}^{j}f......
  • Codeforces Round 893 (Div. 2) C. Yet Another Permutation Problem
    有一个\(gcd\)游戏,按以下步骤进行:选择一个\(n\)的排列\(p_1,p_2,\cdots,p_n\)。对于每个\(i\),\(d_i=gcd(p_i,p_{i\%n+1})\)排列\(p\)的\(score\)为数组\([d_1,d_2,\cdots,d_n]\)中不同数的个数。给一个\(n\),需要构造一个排列\(p\),使得\(sco......
  • [ARC167D] Good Permutation 题解
    题意对于一个长度为\(N\)的排列\(Q\),定义其为好的,当且仅当对于任意整数\(i\in\left[1,N\right]\),在进行若干次操作\(i\leftarrowQ_i\)后可以得到\(i=1\)。给定一个排列\(P\),定义一次操作为交换两个数。定义\(M\)为可以将\(P\)变为一个好的的排列的最小操......
  • ARC167D Good Permutation 题解
    题意给定一个长度为\(N\)的排列\((P_1,P_2,\cdots,P_N)\)。称一个排列\(P\)为“好排列”当且仅当对于所有\(1\leqx\leqN\),都能通过不停地使\(x\leftarrowP_x\)将\(x\)变成\(1\)。通过最小次数操作将\(P\)变成“好排列”,每次操作为交换\(P\)中的两个数\(P_i\)......