Codeforces Round 888 (Div. 3)
💡
原文中文,约8000字,阅读约需19分钟。
📝
内容提要
给定一个楼梯,每个台阶的高度为h,和t个人,任务是确定哪些人可以通过使用台阶达到高度H。解决方案涉及检查人的身高与H之间的差是否是k的倍数,并且倍数是否小于m。如果是,则该人可以达到所需的高度。
🎯
关键要点
- 给定一个楼梯,每个台阶的高度为h,和t个人,任务是确定哪些人可以通过使用台阶达到高度H。
- 解决方案涉及检查人的身高与H之间的差是否是k的倍数,并且倍数是否小于m。
- 如果是,则该人可以达到所需的高度。
- 有一个数组,允许无限次交换两个位置,要求是交换的那两个数字奇偶性必须一致,问最终是否能有序。
- 只需要排序后的每个位置的奇偶性保持即可。
- 问能否在一个数列中找到一个子序列,满足长度恰好是k的倍数。
- 将序列每k个一段,分成x段,每一段内的数字相同,且第一个和最后一个必须在序列中。
- 如果开头和结尾的数字相同,能找到k个和首尾相同的数字。
- 如果不同,需要分别找到k个和首相同的数字和k个和尾相同的数字。
- 给你一个丢了一个数字的前缀和,问是否存在可能的原始串。
- 前缀和相减就是原始数字,找出重复的和没有出现的,算一算加起来是否相同。
- 有n种药品,部分药品可以通过其他药品合成得到,问得到每一种药品需要多少钱。
- 这是一个DAG图,拓扑一下,然后不断计算更小的值,替换掉原来的价格。
- 给定一个k,找到一个值x,计算(a ⊕ x) & (b ⊕ x)的最大值。
- 根据公式,若a和b在二进制上重合度越大,则结果越大。
- 需要先满足高位相同,可以使用01字典树来实现。
- 有n座山,山之间有桥,询问能否从a山到b山,在能够消耗最大e的代价情况下。
- 需要找到一条路径,满足最大值小于等于h_a + e,使用并查集来处理可达性。
➡️