11 2024 档案

摘要:与 @Zelotz duel,苦战 129min AC。 思路 (本文中默认字符的大小顺序为:\(a < b < c < \dots\)) 首先发现不关心最后两个数是否合法,将前 \(n - 2\) 个位置变得递增是容易的。具体的,对于每一个位置 \(i\),在最终的序列中的值记为 \(t_i\), 阅读全文
posted @ 2024-11-28 21:47 WBIKPS 阅读(26) 评论(0) 推荐(0)
摘要:来个另类解。 思路 手玩一下样例,发现减法只会用在正数上,加法只会用在负数上,大概是因为如何在负数上用了减法或在正数上用了加法,都需要额外的次数去消掉。 然后注意到在两个正数中间包这的所有负数可以直接缩成一个数,两个负数中间包着的所有正数也可以直接缩成一个数。那么现在的序列就变成了一个正负相间的序列 阅读全文
posted @ 2024-11-27 23:23 WBIKPS 阅读(5) 评论(0) 推荐(0)
摘要:思路 首先考虑 Easy Version 没有修改的做法。记 \(l_i,r_i\) 表示颜色 \(i\) 第一次和最后一次出现的位置,若想颜色 \(c\) 不变,必须使得 \([l_c,r_c]\) 区间所有不为 \(c\) 的点都要变,但是可以中间有一个点的颜色为 \(x\),满足 \(r_x 阅读全文
posted @ 2024-11-21 15:21 WBIKPS 阅读(17) 评论(0) 推荐(0)
摘要:@hzjoiineg 为什么是神? 思路 首先将 \(S\) 中 A 的数量不等于 \(a + c + d\) 的情况判掉。 然后将 \(S\) 划分为 ABAB... 和 BABA... 的若干段,对于长度为奇数的段构造方案只能是如下构成:A 开头为例):AB 和 BA 共 \(\lfloor \ 阅读全文
posted @ 2024-11-20 18:57 WBIKPS 阅读(5) 评论(0) 推荐(0)
摘要:思路 注意到第二个条件和第三个条件本质相似,可以用相同的维护方式处理,因此这个只讨论第二个条件的维护方式。 定义 \(dp_i\) 表示走到 \(i\) 的最少步数。第一个条件的转移显然为 \(dp_i \leftarrow dp_{i - 1}\)。 对于第二个条件,\(i\) 能向 \(j\) 阅读全文
posted @ 2024-11-13 11:30 WBIKPS 阅读(18) 评论(0) 推荐(0)
摘要:思路 首先答案上界为 \(n\),因为每本书操作一次一定能使得书架整齐。 因此考虑计算有多少本书能不操作,定义 \(dp_i\) 表示以 \(i\) 为开头的后缀中,最多能保留多少本书不动。答案显然为 \(n - dp_1\),考虑转移: 如果 \(i\) 位置选择操作,显然有 \(dp_i \le 阅读全文
posted @ 2024-11-12 13:44 WBIKPS 阅读(6) 评论(0) 推荐(0)