AtCoder ABC 301 复盘
A Overall Winner
B Fill the Gaps
C AtCoder Cards
这是一道贪心。先统计字符出现的个数,然后尝试用出现次数最少的字符的卡片去替换 @
。这个策略可以被证明是正确的。
D Bitmask
第一眼看到这道题,我就想暴力枚举,直到我看见了这个:
$$1\leq N\leq 10^{18}$$
于是我们想到了如下思路:
如果把 $S$ 中的每个 ?
都改成 0
,答案就是 -1
。否则,你可以对每一个被改为 0
的数字从高位到低位做这样的运算:如果将该数字改为 1
不会使数字超过 $N$,则将其改为 1
。
这是正确的,时间复杂度 $O(\text{字符串}\ S\ \text{的长度})$。
E Pac-Takahashi
看到
At most $18$ pairs $(i,j)$ satisfy $A_{i,j}=$
o
.
我就想到了暴搜状压 DP。
这里我们先跑 $m$ 遍 $O(n)$ 的 BFS 求出从每个糖果出发到每个点的最短路。然后开逝!
-
初始化。初始状态为 $dp_{i,j}=$ INF,$dp_{2^i,i}=d_{i,sx,sy}\ (0\leq i\leq m)$,这里 $m$ 指糖果的个数,$(sx,sy)$ 指出发点,$d_{i,j,k}$ 指从第 $i$ 个糖果出发至 $(sx,sy)$ 的最短距离。
-
转移。转移方程如下:
($\LaTeX$ 太难写了,直接贴代码)
- 求解。如下:
__EOF__

本文作者:TigerTanWQY
本文链接:https://www.cnblogs.com/TigerTanWQY/p/17988112.html
关于博主:GD-SZ 初一蒟蒻,明年拿下六级勾
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/TigerTanWQY/p/17988112.html
关于博主:GD-SZ 初一蒟蒻,明年拿下六级勾
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现