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

AtCoder ABC 268 复盘

A Five Integers

直接用 set 就可以搞定了。

AC Code

B Prefix?

string::substr(),启动!

只需要判断 $S$ 是否等于 $T_{[0,N)}$ 即可,其中 $N$ 为 $S$ 的长度。

AC code

C Chinese Restaurant

如果直接模拟,时间复杂度将高达 $\mathrm O(N^2)$,需要优化。

设 $c_k$ 是进行 $k$ 次旋转后快乐的人的数量,则答案为 $\max_{i=0,1,\ldots,N-1}(c_i)$。假设第 $i$ 道菜最初出现在第 $j$ 个人面前,那么,将第 $i$ 道菜旋转到第 $(i-1)\bmod N$、$i$ 和 $(i+1)\bmod N$ 个人面前所需的次数分别为 $(i-1-j)\bmod N$、$(i-j)\bmod N$ 和 $(i+1-j)\bmod N$ 次。因此,对于第 $i=0,1,\ldots,N-1$ 个人,我们可以 $\forall i\in [0,N)\ c_{(i-1-j) \bmod N}\leftarrow c_{(i-1-j) \bmod N}+1,c_{(i-j) \bmod N}\leftarrow c_{(i-j) \bmod N}+1,c_{(i+1-j) \bmod N}\leftarrow c_{(i+1-j) \bmod N}+1$,这样我们就可以在 $\mathrm O(N)$ 的时间内求得 $c_0,c_1,\ldots,c_{N-1}$。

P.S. 可以按照 $\forall i=p_0,p_1,\ldots,p_{N-1}$ 的顺序进行处理来简化运算。

AC Code

D Unique Username

DFS。分为两部分:名字和下划线数量。名字部分可以理解为全排列;下划线部分则直接一个一个地增加数量。如果此时字符串的长度 $\geq 16$,直接 return;否则,还需用 unordered_set $\mathrm O(1)$ 查询是否重复:如果不重复,则输出并 exit(0),否则 return 继续搜索。

AC Code

E Chinese Restaurant (Three-Star Version)

C 题,如果暴力,则 $\mathrm O(N^2)$。

考虑优化。在转动餐桌的过程中,第 $i$ 道菜离第 $i$ 个人的距离只有两种情况:先递增递减 或 先递减递增。而它们在二维坐标系上会呈现为很多条一次函数的图像。因此只需要存点再取 min 即可。

AC Code

F Best Concatenation

很容易想到贪心。只需要按照每个字符串能产生的贡献降序排序,然后将它们拼接成一个字符串 $T$,再计算 $T$ 的贡献即可。

这里的贡献即题目中的 “score”。

AC Code


__EOF__

本文作者TigerTanWQY
本文链接https://www.cnblogs.com/TigerTanWQY/p/17988107.html
关于博主:GD-SZ 初一蒟蒻,明年拿下六级勾
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   TigerTanWQY  阅读(17)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示