window.cnblogsConfig = {//可以放多张照片,应该是在每一个博文上面的图片,如果是多张的话,那么就随机换的。 homeTopImg: [ "https://cdn.luogu.com.cn/upload/image_hosting/xkzro04i.png" ], }

AtCoder ABC 312 复盘

A Chord

一道水题,直接 if 判断字符串解决。

AC Code

B TaK Code

也是一道水题,只需要枚举每个点做为左上角然后判断是否合格即可。

AC Code

C Invisible Hand

第一眼看到就知道是二分。但是,因为我天真地把左右边界设为数组最小最大值而非 $0$ 和 $10^9+1$,从而 WA 了 $\LARGE{\texttt{N}}$ 次……时间复杂度 $O(n\log n)$。

AC Code

D Count Bracket Sequences

首先可以想到 DFS 搜索每一个问号替换后的状态,时间复杂度 $O(3^n)$,显然会爆炸。

考虑 DP,这里我们的状态是第 $i$ 个字符到第 $j$ 个字符的子串中至多能有多少个括号序列,初始状态为第 $0$ 个字符到第 $0$ 个字符的子串中之多能有 $1$ 个括号序列,转移方程是

$$ f_{i+1,j+1}=(f_{i+1,j+1}+f_{i,j})\bmod 998244353\ (s_i=\texttt{)})$$

$$ f_{i+1,j-1}=(f_{i+1,j-1}+f_{i,j})\bmod 998244353\ (j\ne 0,s_i=\texttt{(}) $$

时间复杂度 $O(n^2)$。

AC Code

F Cans and Openers

这道题可以使用贪心。首先,将易拉罐的幸福度降序排序并求和,我们可以求出对于每个 $t$ 在选择 $t$ 个易拉罐时的最大幸福感。因此,只需要知道对于每个 $s$ 在选择 $s$ 个普通罐头和开罐器时的最大幸福感即可。然后,将普通罐头的幸福度和开罐器的使用次数升序排序,如果还有一个可用的开罐器,就选择一个幸福感最大的普通罐头;否则,选择一个能打开最多罐头的开罐器。时间复杂度 $O(n\log n+n)$。

AC Code

posted @ 2023-12-14 23:22  TigerTanWQY  阅读(22)  评论(0)    收藏  举报  来源