2024.10.6训练记录
下午 cf
A
结论:排序后从前往后做就是对的。
感性证明:考虑把做完平均的式子通分,发现在a、b做完后分别和c、d做平均比ab、cd各自做平均更优。
于是要让更大的值被除的次数更少。
B
签到题,考场还是写挂了,今天码力差。
挂在 while()
动指针的时候没有判右边界,似。唐诗程度不亚于数组开小。
C1
猜出来结论是第一次出现需要按照一开始的顺序就能过。
C2 已订正
把一开始的排列映射到 \([1, n]\)。
修改时用 set
动态维护每个数第一次出现的位置。
把第一次出现位置的序列也开一个 set
维护,那么最终要满足的条件就是在这个总的 set
中是单调递增的。
如何维护单调递增:因为是单点修改,可以维护 set
中满足 \(s[i] < s[next(i)]\) 的数对个数,个数为 \(n-1\) 时就是递增。
这个trick应该会挺泛用的。
几个实现上的注意点:
调用前驱/后继的时候让迭代器自增/自减会很麻烦,写起来不知道到底动到哪了。
可以调用函数 prev()
、next()
。这样迭代器自己不会动。
因为执行序列中不一定每个数都会出现,一开始可以往后面插一个 \([1, n]\) 防止 set
越界。
我实际写出来很难看就是了。怎么大家都写那么好看/kel。
E1
猜两次结论题。
结论1:服务器只会搭在需要网的点上。
结论2:搭第 \(i\) 次服务器只需要在搭完 \(i-1\) 个的基础上做。
于是枚举每次搭在哪个点上,选对答案减小贡献最大的。
\(O(n^3)\) 解决。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?