Codeforces Round 892 (Div. 2)
💡
原文中文,约4100字,阅读约需10分钟。
📝
内容提要
A. 团结就是力量:任务是将一个数组分成两个数组,使得数组a中任何值除以数组b中任何值的余数不等于0。解决方案是将最大值放入数组b,其余值放入数组a。B. Olya与数组游戏:任务是将每个数组中的一个值移动到另一个数组中,然后找到每个数组中最小值的最大和。解决方案是始终将每个数组中的最小值移动到另一个数组中,并根据最小差异计算和。C. 另一个排列问题:任务是通过将排列数组中的每个值与其索引相乘来找到最大可能和,然后移除最大值。解决方案是遍历所有可能的最大值并计算和。D. Andrey与逃离Capygrad:任务是找到可以通过沿光线的传送门到达的最远点。解决方案是仅考虑范围在l到b之间的传送门,因为超出b只会导致返回到更小的值。传送门可以使用l和b节点进行维护,如果当前位置在范围内,则可以进入传送门。
🎯
关键要点
- 任务是将一个数组分成两个数组a和b,确保a中任何值除以b中任何值的余数不等于0,解决方案是将最大值放入b,其余值放入a。
- 任务是将每个数组中的一个值移动到另一个数组中,找到每个数组中最小值的最大和,解决方案是将每个数组中的最小值移动到另一个数组中,并计算和。
- 任务是通过将排列数组中的每个值与其索引相乘来找到最大可能和,然后移除最大值,解决方案是遍历所有可能的最大值并计算和。
- 任务是找到可以通过沿光线的传送门到达的最远点,解决方案是仅考虑范围在l到b之间的传送门,维护l和b节点以决定是否可以进入传送门。
➡️