【LOJ2554】「CTSC2018」青蕈领主

该博客详细介绍了LOJ2554青蕈领主问题,探讨了如何构建值域连续的区间树形结构,并通过递推公式`fi`解释了排列个数的计算方法。利用分治和FFT技术,实现了O(NLog2N+T×N)的时间复杂度解题策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【题目链接】

【思路要点】

  • 值域连续的区间的交和并均为值域连续的区间,因此一个合法输入应当能够构成一个树形结构。
  • 考虑一个节点的子树,其对应的区间值域连续,且在后续的考虑中,我们会避免使其出现在更大的连续区间中,因此我们可以等效地将其看做一个数。
  • 因此,记 f i f_i fi 表示长度为 i + 1 i+1 i+1 的,去掉最后一个元素后不存在非平凡连续区间的排列个数, s i s_i si 表示 i i i 的子节点个数,应当有
    A n s = ∏ i = 1 N f s i Ans=\prod_{i=1}^{N} f_{s_i} Ans=i=1Nfsi
  • 关于 f i f_i fi 的计算有如下递推式 f 0 = 1 , f 1 = 2 , f i = ( i − 1 ) f i − 1 + ∑ j = 2 i − 2 ( j − 1 ) f j f i − j   ( i ≥ 2 ) f_0=1,f_1=2,f_i=(i-1)f_{i-1}+\sum_{j=2}^{i-2}(j-1)f_jf_{i-j}\ (i\geq 2) f0=1,f1=2,fi=(i1)fi1+j=2i2(j1)fjfij (i2)
  • 该递推式的证明:
    对于一个满足去掉最后一个元素后不存在非平凡连续区间的排列 a i a_i ai ,定义 b a i = i b_{a_i}=i bai=i ,那么 b i b_i bi 是一个不存在不包含最大值的非平凡连续区间的排列,且 a i a_i
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值