题解:P8776 [蓝桥杯 2022 省 A] 最长不下降子序列
本蒟蒻接触 OI 半年以来的第一篇题解,不会树状数组,只好使用朴素的拼接计算的方式了。
这是对变量名以及缩写的解释:
:最长不降子序列。(Longest Not Decrease Sequence) :最长不升子序列。(Longest Not Increase Sequence) :原数组。 :保存某一长度的最长…… 子序列的末尾值。 :保存以某数为结尾的最长…… 子序列的长度。 :保存以某数为开头的最长…… 子序列的长度。
Part_1 dp 正确性证明
显然肯定要去赋值。对于原数组的
(如下图,两种方案对答案并没有实质性的影响,# 表示被选。表示没有 [] 表示被赋值。)
1 | ..#.....#...[....]...#...# |
Part_2 dp 策略的分析
提取出一般的状态是这样的:
1 | ....#..[....]#.... (具体个数不定) |
我们确定子段的最后一个下标为
那么当前情况的
处理完之后
也就是说 query 的是
Part_3 dp 策略的实现
在最初找
更多详细内容在代码的注释部分。
1 |
|
- Title: 题解:P8776 [蓝桥杯 2022 省 A] 最长不下降子序列
- Author: Firsry
- Created at : 2025-08-10 09:01:16
- Updated at : 2025-08-10 09:28:04
- Link: https://firsryfan.github.io/2025/08/10/题解:P8776-蓝桥杯-2022-省-A-最长不下降子序列/
- License: This work is licensed under CC BY-NC-SA 4.0.