scz 7.30 B

A.regia

线段树随意维护。
全场唯一挂分

B.papy

我们沿着这个词从左到右迭代,并保留我们还没有配对的字母数组。假设我们遇到一个字母A.我们将检查最后一个不成对的字母是否为A:如果是,我们可以将其与新的字母配对,并将其从不成对的字母数组中删除。如果最后一个不成对的字母是B,我们必须将新的字母A添加到不成对的字母数组(我们不能与以前的一个A配对),因为如果我们尝试连接B后,它要形成的弧线将与字母A形成的弧线相交 )。

请注意,我们保留的不成对字母的数组是一个堆栈:一个结构,可以添加元素到最后,访问最后一个元素并删除最后一个元素。如果我们完成迭代后堆栈是空的,那么这个词是好的。
(原题解)

C.tran

模拟。

D.math

将问题转化为选择\(n - k\)个数,不难发现排序后选择连续一段由于选择若干段。设\(b_i = a_i - a_{i - 1}\),对于区间\([i,i + n - k - 1]\),答案为\(a_{i + n - k - 1} - a_i + \min_{j = i + 1} ^ {i + n - k - 1} \{b_j\}\),单调队列维护后对所有区间答案取min。

E.ctm

转成矩阵乘法,然后快速幂。

F.aqu

不会,爬了。

posted @ 2022-07-31 15:03  luyiming123  阅读(23)  评论(0编辑  收藏  举报