CSP-S 2021 题解

A

只要不和我一样把样例玩错应该就不会否认答案随着 \(n\) 增大而增大的单调性……

于是我们发现答案单调并且很容易用 set 直接维护 \(n=1\to n\) 的答案。对两边算出来直接计算取 \(\max\) 即可。

B

读好题。

发现转移是 \(S\) 不能同时在一个合法括号的两边。所以考虑设 \(f[i][j]\) 表示两边的括号匹配在一起的方案数,\(g[i][j]\) 表示是由许多 \(f\) 拼接的方案数,转移的时候枚举一个开头的 \(f\) 来转移 \(g\) 就可以做到不重复了。

C

简单题。

考虑一个性质,如果我们确定了第一个数,那么我们会发现下一个选择的数一定是在这个数的另外一个位置的两侧。于是不论怎么删,这个选择的数一定是一个连续段并且候选数字一直只有两个。

于是直接贪心模拟即可。容易证明如果两边都可以选择那么选左边不会劣于选右边。

D

待补。

posted @ 2021-10-27 17:57  Refined_heart  阅读(134)  评论(0编辑  收藏  举报