AtCoder ABC 273 复盘
A A Recursive Function
模拟,递归、递推、累乘都可以。我用的累乘。
B Broken Rounding
也是模拟,每次将 $X\leftarrow X\div 10^{i-1}$ 后判断 $X\bmod 10$ 是否 $\geq 5$,若是,$X\leftarrow X+10$;若不是,不进行操作。最后再将 $X\div 10$ 输出。
C (K+1)-th Largest Number
典型的二分。每一次二分出最小的大于等于 $a_i$ 的数的下标 $L$,然后用一个数组记录答案。
D LRUD Instructions
大型模拟。需要用 map
存储障碍物,然后每次移动时 $O(\log N)$ 的查询路径上距离起点最近的障碍物,并移动至障碍物前;如无障碍物,直接按输入移动。总体时间复杂度 $O((N+Q)\log N)$。
E Notebook
很显然,如果直接存储直接恢复会爆炸($\color{#052242}\texttt{TLE}$ 和 $\color{#052242}\texttt{MLE}$)。于是我们想到一件事,能否在一个一维数组上完成所有的操作?答案是肯定的,我们可以采用类似 list
+stack
的方法完成。
-
插入,插入时即向类链表
lst
的尾部插入 $x$,向类栈stk
压入 $x$。 -
删除,删除即删除链表尾部。
-
保存,将
map
$save_x\leftarrow$ 栈顶指针(下标)。因为以后的操作均在下标为 $x$ 的元素之后(即在栈顶之上)操作,所以可以通过将栈顶指针指回 $save_x$ 实现恢复。 -
恢复,将栈顶指针指向 $save_x$。
每次输出栈顶即可。
__EOF__

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