GYM 101522 La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017
C.Cheering
题意:
判断一个字符串中, 哪个字符穿出现的次数多,如果一样多输出
思路:
模拟就行
A.Ambiguous Dates
题意:
一共有 月,每一月有 天,要求对 重排序,使得最后日和月可以互换的合法天数最少。
思路:
因为月是从小到大递增的,应该尽可能的让第 月的 小,这样就可以防止 月日的日期合法。故将 从小到大排个序然后统计就好了。
B. Bacteria Experiment
题意:
给一个无向树,每一次可以让 相连边(当且仅当 ), 求出多少次操作后可以让这棵树变成完全图。
思路:
首先假设这是一条链,现在模拟一下整个的流程
深度为 需要三次操作。由于每一次能够连的点的数量增长的十分快,所以应该去看深度而不是点数的变化,第一次深度为 的点可以连向深度为 的, 第二次深度为 的就可以连向深度为 的, 再下一次就可以连向深度为 的点,不难看出每一次都是在上一次的基础上 ,所以只需要知道树的直径的最高二进制位是多少。
D. Distribution of Days
题意:
求出 年间, 月 日出现在一周七天内分别出现了多少次。
思路:
由于闰年是 年一闰 年不闰, 年闰,所以可以将年分成 为一个循环,那么这 年中一共有 天,而 所以只需要用 作为一个循环节就可以了,预处理出来 年到 年 出现在周一到周日的次数就行了。
E. Expected Score
题意:
一共有 个数, 个箱子,每一个数出现在两个不同箱子上面。每一轮游戏取出两个箱子,如果这两个箱子上面的数字相同,就将这个数字该轮游戏的得分, 否则得分为,最后将箱子放回原位。现在一共有 轮游戏,已经进行了 轮,求出最后一轮可以得到该轮游戏最高分的期望是多少。
思路:
由于我们可以知道前面 轮取出的箱子他们表示的数是多少,所以我们可以把 个数分成三种情况来讨论,第一种是 在不同位置的箱子上出现了两次,第二种是 在已知的箱子中只有一个表示 , 第三种是 在已知的箱子中没有出现。将数分成了三类,那么将答案也分三种情况讨论,将 轮最高分计为 , 第 轮的得分记为 , 未知的箱子数量记为
第一种情况:在已知的箱子里面选出两个箱子作为最后的得分,很显然你一定是在 中选择两个数,否则答案一定不是最优的,那么这种情况的期望就是
第二种情况:在已知的箱子中选择一个箱子在未知的箱子中选择一个,那么一定是 在已知的箱子中只出现了一次,所以在 个箱子中只有一个箱子可能出现 , 那么最后我们得到 的概率是 , 而得到 的概率是 ,所以这种情况的期望是
第三种情况:在未知的箱子中选择两个数,选到 的概率是 ,选到 的概率是 所以最后的期望也就求出了。
最终的答案就是三种情况的期望取最大值
F. Frustrating Game
题意:
给 个排成一行的仅由 组成的球,可以使用魔法将 个红球和 个蓝球消掉变成白球,但是这些球中间不能够有白球。
思路:
如果 那么就可以将 串看作是一个括号序列,让我们求出该匹配方案,这就只需要用一个栈来作括号序列的匹配就可以了。那么类比到一般的情况,就每次判断在栈顶的 的元素中是不是有 个 个 ,是的话就删掉这些数,最后将方案倒着输出一遍就行。
G. Gravitational Tetris
题意:
有 种积木,且可以自由下落,构造一组方案使得最后, 列拥有一样的行数。
思路:
可以将所有前 列的格子都拼到 行,最后一列只有可能是 这样才是有解的,前面 列的拼法就是 且 , 采用 两种积木来拼,同时需要去更新 , 因为 种积木他向右伸出了一格,最后一列特判一下就行了,如果是 的情况需要用一个 种积木和两个 来调整所有列变成 行。
H. Hit!
题意:
求出两圆任意一个公共点
思路:
计算几何板子,也可以用定比例分点、
I. Inverted Signs
题意:
可以改变 区间内所有数变成他们的相反数,求出最后整个序列 的最小值。
思路:
因为区间内改变正负性,不会影响这个区间对答案的贡献,所以只需要计算出相邻两项变化值是多少,最后取最小的两个负数加到原来的答案上就可以了
J. Juicy Candies
题意:
有 个 , 个 , 个 , 且相邻的不能相同,求字典序第 小的方案。
思路:
求出字典序第 小也就是要求出对应的一个前缀,计算这个前缀的方法可以只关心最后一个字符和前面一共有多少个 , 这样我们可以转化成求出求一个后缀,这样就只需要关心这个后缀中有多少个 和第一个字符是什么。这样就可以用一个 来转移方案数,定义 表示现在用了 个 , 个 , 个 , 且在最开头是 的方案有多少种,转移方程也很容易想到就是从另外两个状态转移过来, 但是如果直接计算方案数的话,可能会爆 , 我们只需要关心前 个的方案,所以后面的就不需要去关心,所以最后 都要和 取个最小值
K. Knights
题意:
矩形,同行或同列已被占领的格子中间的所有格子都会被占领,求在给定已占领格子的基础上占领所有格子还至少需要派骑士占领多少个格子
思路:
判断四个角就行,另外特判 , , 的情况
L. Let Me Count The Ways
题意:
给定两行,分别 列, 列 , 将个数放入这 个格子,使得数字不重复、每行前面的数比后面的数大,每列第一行的数比第二行的数大,求有几种放法。对 取模
思路:
是一个标准杨表的问题,答案就是卡特兰数 证明参考:L题解
但是这个数太大了 肯定是不可以直接算出所有的 阶乘和逆元的,所以考虑 定理,确实可以解决这个问题,但是在第五个样例的测试的时候要跑 显然不能够通过本题,那么就要使用分段打表的技巧,预处理出来 , 这样算任意一个数的阶乘的时候最多只需要算 次就可以算出来了,而且大于 的数的阶乘不需要去计算答案肯定是
__EOF__

本文链接:https://www.cnblogs.com/Haven-/p/17053368.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!