2025牛客寒假算法基础集训营3
B 智乃的质数手串
先考虑链而不是环的情况。
因为前面的元素不可能用于消去后面的元素,所以删除的顺序不影响有解性。
对于链的情况,我们直接用栈维护未消去的元素,每次插入新元素前尽可能删去栈顶,若最后栈中只剩最后一个元素则有解。
环有解等价于任意一个循环移位有解,而循环移位不破坏前面元素的相对顺序,于是我们直接复制一遍,滑动窗口即可。
D 智乃的Notepad(Hard version)
容易发现每次询问的最优策略:考虑 内的串构成的 Trie,我们从根开始 dfs,并且最后走通向深度最大节点的那条路,到达深度最大节点后不再回溯。
也就是求 Trie 边数的两倍减去最大深度。
最大深度就是 RMQ,容易处理,问题是如何求区间内的串构成 Trie 的点数。
如果我们把询问离线到 上,那么每次询问的便是在 之后的插入串覆盖点集的并。
想象我们第 次插入一个串相当于把路径上的点都染上颜色 ,用一个数组维护当前各个颜色点数,问题就变成求区间和,树状数组做就好。
E 智乃的小球
经典的速度交换可以看作直接穿过,最多碰撞次数就是对每个 前面的 求和,前缀和处理即可。
然后是求第 次碰撞时间,我们二分答案 。
对每个 ,坐标小于 的小球不会与之碰撞,我们二分出这个位置,利用前面的前缀和即可计算 之内的碰撞次数。
郑州站的教训:实数域二分直接写成常数次更安全。
G 智乃与模数
这道比较板,求 前 大之和,我们二分出这个第 大,然后对超过它的部分数论分块求和即可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战