A
模拟,代码。
B
模拟,代码。
C
我们设 \(c\) 为最后相同的字符。
性质:我们一定不会删除字符 \(c\)。
因此以 \(c\) 为最后字符的操作次数就是不包含字符 \(c\) 的极大段的最小操作次数的最大值。
对于一个长度为 \(l(l\ge 1)\) 的段,它的最小操作次数为 \(\lfloor\log_2l\rfloor+1\)。
时间复杂度:\(\mathcal O(n)\)。
代码。
D
- 枚举最后一个选的线段是哪一条。
- 选一条线段的代价是 \(2\),一次是『激活』一次是『不激活』。
- 前面一定是长度最小的几条线段不选,因此我们可以用优先队列维护。
时间复杂度:\(\mathcal O(n\log n)\)。
代码。
E
前言:这 \(k\) 有误导性。
对于右括号 \(i\),我们设其对应的左括号为 \(l_i\)。
则这个右括号对答案的贡献为 \(\dfrac{i-l_i-1}{2}\),就是 \(i\sim l_i\) 中括号的个数。
我们修改可以修改一个左括号,使得其对应的右括号的贡献值变为 \(0\)。
那么我们就将最大的 \(k\) 个贡献值修改。
时间复杂度:\(\mathcal O(n\log n)\),瓶颈在于排序。
代码。
F
先搁着,等会生成函数再来补题。
标签:147,Educational,log,题解,代码,括号,Link,mathcal,复杂度 From: https://www.cnblogs.com/hcywoi/p/17368025.html