CF1349F1 Slime and Sequences (Easy Version) 题解

本文探讨了一种利用动态规划和排列组合解决数学问题的方法,通过观察输入与输出之间的规律,建立了好序列与排列的双射关系。通过分析排列的极长下降区间,推导出计算公式,并利用动态规划进行状态转移,最终在O(n^2)的时间复杂度内求解问题。文章还提及了欧拉数在解题过程中的应用。

Description

传送门

Solution

Part 1: 性质观察

遇到这种输入量非常小的题,我们往往会想到找规律。先用暴力打个表出来试试吧。

1: 1
2: 3 1
3: 10 7 1
4: 41 39 15 1 

我们发现,输入 n n n 后对应的答案之和为 n ! n n!n n!n;因此,好序列的数量恰有 n ! n! n! 种。这启发我们将好序列与长度为 n n n 的排列建立双射关系。

考虑构造下面的双射:

  • 对于一个好序列 a a a 而言,将 a a a 中的元素从大到小排序;特别的,若两个元素的值相等,那么按照下标从大到小排序。将排序后的序列中的各个元素原来所在的位置依次取出,即可得到一个长度为 n n n 的排列 p p p
  • 对于一个排列 p p p 而言,我们将其划分为若干极长下降区间。对于第 k k k 个下降区间 [ l , r ] [l,r] [l,r] ∀ i ∈ [ l , r ] \forall i \in [l,r] i[l,r] a p i = k a_{p_i}=k api=k,即可得到一个长度为 n n n 的好序列 a a a

因此, a n s i ans_i ansi 即为所有长度为 n n n 的排列的第 i i i 个极长下降区间的长度之和。

Part 2: 列出式子

注意到,对于一个排列 p p p 中的第 i i i 位,其会对 a n s x ans_x ansx 产生贡献当且仅当 [ 1 , i ) [1,i) [1,i) 中恰有 x − 1 x-1 x1 个位置 k k k 使 p k < p k + 1 p_k<p_{k+1} pk<p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值