专栏文章
[USACO24OPEN] Cowreography G
P10280题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mio7hkrw
- 此快照首次捕获于
- 2025/12/02 14:37 3 个月前
- 此快照最后确认于
- 2025/12/02 14:37 3 个月前
前言
非常好,肥肠有意思的神秘贪心题!!!
题目分析
我们假设两个字符串分别是 。
我们把点分成 类:对于 ,如果 ,这是第 类点;如果 ,这是第 类点;其他点是 类点。
我们需要把一个 类点和一个 类点匹配,使得步数最小。对于 类点,显然不动最优。
考虑两个点分别为 ,两者是不同类型的非 类点。通过交换把他们换成 类点的步数是 (每次只能换 ,所以现需要这么多步)。
对于 的 ,假设当前有 个 类点没有匹配,遇到了一个 类点。如果不考虑向上取整那选哪一个 类点答案都一样,因为之后(包括当前)的 个 类点都会和 匹配,顺序和答案无关,答案是这些 的下标和减去 的下标和。而且同时此时不选取前面的 类点一定不优,因为会多算两次这个点和后面一个 类点之间的距离。
由于有向上取整,我们尽量选取这些 中差是 倍数的,如果没有的话选择的余数最大的,因为我们希望浪费的步数尽量小。
为什么加入向上取整之后不会影响一开始的策略?违反一开始的策略至少会多走 ,而这里的取整影响一定更少。
可以使用
set 维护这里的点。时间复杂度 。
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...