A
- 注意到在单位时间内,硬币会下降一格,但是人可以在下降一格的同时左右平移,这其实就相当于人和硬币在垂直方向上都没有动,只有人在水平方向上走了一格
- 所以重复这个过程,发现人其实可以“瞬移”到水平方向上的任意一个位置
- 这也就是说,我们其实只需要关注硬币的纵坐标
- 考虑 以上位置:显然可以接到
- 考虑 :由于人是先走的,所以可以接到
- 考虑 以下位置:发现人永远追不上硬币
- 所以对于每个点,如果纵坐标小于等于 ,就接不到,否则可以接到
B
- 由于字串必须是连续的一段,我们考虑以 基础,在前后加上一些字符,这样一定满足第一个要求,我们现在考虑如何满足第二个要求
- 考虑子序列和字串的区别:子序列可以不连续,但是它和字串都一定满足顺序关系
- 一个很 naive 的贪心思路是:双指针找 种的字符在 中是否有对应
- 但这显然很好 :
- 注意到数据范围很小
- 考虑枚举 作为 的子序列出现的第一个字符,于是本题得到完美解决
C
- 考虑枚举每种情况:
- 显然不管
- 相当于给任意一个电影 +1,我们记录一下,放到后面考虑
- 相当于给任意一个电影 -1,我们记录一下,后面考虑
- 显然直接给第二个电影 +1 是不劣的
- 显然直接给第一个电影 +1 是不劣的
- 显然不管是不劣的
- 显然不管事不劣的
- 显然直接给第二个电影 +1 是不劣的
- 显然直接给第一个电影 +1 是不劣的
- 经过上面一顿操作,两个电影都有初始分数,我们必须选择一些分数砍掉,再加上一些分数
- 显然,砍的时候先砍大的,加的时候先加小的即可
D
- 注意到只要造了剑就肯定可以融掉,所以答案一定是 的倍数,我们接下来只考虑最多能造多少剑
- 不妨转换以下题意:
- 我们有 中获得贡献的方式,形如:获得 个贡献的代价是 ,但你必须先有 的钱才能使用这种方式
- 对于 种不同的钱数,独立计算最大贡献并求和
- 注意到:如果有两种贡献方式 满足 那 这种贡献方式屁用没有
- 所以我们先去掉无用的贡献方式,具体地,其中一种实现是:按照 升序排序,如果发现 那么 无用
- 注意到:如果我们现在有 个钱,那么我们一定选择满足条件的贡献方式中代价最小的,考虑 dp
- 表示 个钱能获得的最大贡献
- 转移
- 注意到钱的数据范围高达 1e9,dp 数组显然只能开到 1e6 量级
- 注意到贡献的最大限制是 1e6,所以钱中高于 1e6 的部分,都一定会使用 最高的贡献方式
- 所以直接计算钱中超过 1e6 的部分的贡献,再查表获得 1e6 量级的部分的贡献相加即可
E
- 题很难,看起来更难,但只需要一句话就能讲完,或者说,这道题需要极强的注意力
- 注意到:题目本质求的是:将 个数分成至少 个段的方案数
- 表示前 个数分成 段的方案数
- 转移:
- 但这道题还有个 conor case:
- 如果 ,那么最后一段长度不能为
- 但是如果 是可以的,因为此时 会变成 或者
F
- 对不起,但是我真的看不懂这道黑的抽象染色建图+动态加边维护强连通分量+整体二分分解强连通分量+并查集维护缩点的任何一篇题解 /kk
posted @
2024-11-12 08:18
yeyou26
阅读(
25)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】