题目:2024.9.29 题目
光
在 的网格内有 盏灯,每盏灯可以选择不同的耗电量,耗电量为非负整数。若一盏灯的耗电量为 ,则对自己格子提供 的亮度,对相邻格子提供 的亮度,对对角格子提供 的亮度。现告诉你每个格子需要达到的最小亮度,求每一盏灯的耗电量的和的最小值。
首先,我们可以很快猜出:任意灯的耗电量都不大于对应位置需要的亮度,因为高于需要的亮度就没意义了。因此我们可以很快地写出 无脑暴力,即枚举每一盏灯的耗电量并判断是否满足条件。
接下来考虑优化。不难发现,在枚举完前三个灯泡之后,第四个灯泡一定是耗电量越小越好,但是只有达到一定耗电量才能满足条件,因此可以使用二分求出第四个灯泡的最小耗电量将其优化至 。
经过短暂思考后发现,枚举完三个灯泡的耗电量之后,最后一个灯泡的最小耗电量是可以计算出来的,因为耗电量与给任意格子提供的亮度成正比,所以可以将其优化至 。成功获得 分。
爬
有 点的树,每个根结点为 ,每个结点都有一只蚂蚁,第 个结点的蚂蚁的权值为 。对于每一只蚂蚁,它可以向父结点爬或留在原地,但只能选择一次。如果所有蚂蚁选择完毕后,有结点有多只蚂蚁,那么产生这些蚂蚁权值的异或和。问所有方案的快乐值之和。
由于本题计算答案的方式为异或和,因此考虑对权值进行二进制拆分。对于结点 , 的所有儿子 都可能会移动到 。令 为 自己加上儿子的数量,则 为儿子上移的组合数, 为其它结点上移的组合数。令 表示为 与它的儿子第 位不为 的数量,那么对于二进制第 位,有 种组合,答案需要加上 ,其中 大概是 。
然后只有一只蚂蚁在结点上的情况,并加上对根结点的恶心特判,即可 AC。时间复杂度为 ,在递归函数里面开局部数组爆栈了,得 分。
字符串
通过 的深度优先搜索暴力搜出所有的 序列,然后现判断一下是否满足 的限制,再计算出最终的权值,取最大值即可。时间复杂度为 ,原应获得 分,写挂了得 分。
奇怪的函数
通过两个数组存储函数的第 步骤的信息,然后使用 的更改与 的调用时间复杂度写出暴力,总时间复杂度 ,运气好得到 分。
总结
- 排名:;
- 比赛分数:;
- 情况:相比与 2024.9.26 模拟赛 较好;
- 问题:数学推导能力不行,不会贪心。