1 条题解
-
0
幸运查询 题解
思路
一个区间只需维护四个量:字符
4数量 、字符7数量 、最长4...7子序列长度 ,以及最长7...4子序列长度 。合并左右区间 时,
另一方向同理。区间翻转会交换 ,并交换 ,因此可用带懒标记的线段树维护。
做法
子任务 1 在每次
count时枚举所有子序列,筛选不下降者,复杂度 。子任务 2 直接执行区间翻转;每次
count枚举4与7的分界位置并线性求最优,复杂度 。满分算法建立线段树。区间翻转时交换上述两对量并翻转懒标记;
count的答案就是根节点的 。正确性证明
任意跨越左右区间的不下降子序列,要么取左区间若干
4后接右区间最优4...7子序列,要么取左区间最优4...7子序列后接右区间若干7,合并式覆盖且只覆盖这两种可能。字符互换后,4...7与7...4的角色完全交换,懒翻转保持四个量正确。由线段树归纳,根节点始终给出整个字符串的最长不下降子序列。复杂度
建树 ;每次
switch为 ,每次count为 ;空间复杂度 。
- 1
信息
- ID
- 1261
- 时间
- 3000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者