Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2)
内容提要
2023-2024年Harbour.Space奖学金竞赛包含多个编程题目,涉及构造严格递增数列、字符串交换与翻转、整除路径构造、矩阵翻转操作及猜测游戏的期望次数计算。每个题目都有独特的解法,涉及算法设计与数据结构应用。
延伸解读
题目A的构造思路
题目A要求构造一个严格递增数列,且递增速率严格递减。文章指出可以倒着构造:从最后一个值开始,每次减去一个递增的差值,最后检查是否满足条件。这种方法利用了逆向思维,避免了正向构造的复杂性。
题目B的奇偶性分析
题目B允许交换相隔一个位置的字符和翻转长度为k的子串。文章通过分析得出:当k为奇数时,奇偶位置的字符无法互换,因此分别排序后输出;当k为偶数时,可以通过操作实现任意相邻字符的交换,从而整体排序得到最小字符串。
题目C的二进制技巧
题目C要求构造一条从n到1的整除路径,且1至多出现两次。文章提出利用lowbit(最低位的1)来快速减少数值:每次减去lowbit,直到只剩一个bit位,再持续减去lowbit的一半。这种方法基于二进制表示,能有效避免重复出现1。
题目E的博弈与字典树
题目E是一个涉及OR运算的猜测游戏,需要计算期望猜测次数。文章从二进制角度分析,指出双方通过多轮“不知道”的回答逐步排除可能性。最终利用01字典树统计每个节点作为首个不同位时的贡献,结合组合计数得出期望值。
Q&A
Harbour.Space奖学金竞赛的主要内容是什么?
2023-2024年Harbour.Space奖学金竞赛包含多个编程题目,涉及算法设计与数据结构应用。
题目A要求构造什么样的数列?
题目A要求构造一个严格递增的数列,给定第一个和最后一个值。
题目B中如何处理字符串的交换与翻转?
题目B要求选择一个合理的i,交换a_i和a_{i + 2},并翻转长度为k的连续字符串以达到最小字符串。
题目C的整除路径构造有什么要求?
题目C要求给定一个初始值,每次可以减去它的整除数,直到变成1,且路径中1至多出现两次。
如何通过翻转操作将01矩阵变为全0?
题目D要求选择一个位置作为三角形的顶点,向下翻转所有三角形内的元素,计算最少操作次数。
题目E的猜测游戏是如何进行的?
题目E中,Carol从数组中选出两个值进行OR计算,Alice和Bob轮流猜测这两个值的大小关系,计算期望的猜测次数。