2022“杭电杯”中国大学生算法设计超级联赛(1)
比赛链接
2022“杭电杯”中国大学生算法设计超级联赛(1)
7139. Dragon slayer
给定一张 的地图,有 道墙,每次操作可以消除一道墙,求由起点到终点的最小操作数
解题思路
bfs,二进制优化
关键在于图的位置表示,即点的坐标是小数,而墙的坐标是整数,将墙的横竖分别用两个数组表示,点左右/上下移动时用竖/横墙判断,二进制表示所有的墙是否操作, 判断起点是否能到终点,注意点是否能经过墙的一些细节
- 时间复杂度:
代码
7140. Backpack
给出 个物品,容量为 ,体积和价值分别为 ,求恰好将背包装满的价值最大异或和
解题思路
dp,bitset优化dp
-
状态表示: 表示前 个物品是否存在异或和为 ,体积为 的情况
-
状态计算:
显然可以滚动掉第一维,即每次求解 ,可由 优化,而 可以一维一维处理,所以另外开一个 数组,表示上一个数组,同时先表示出体积,即 ,在 上对应左移 位
- 时间复杂度:
代码
7141. Ball
给定 个点,问有多少种方案,使得选出 个点中边的长度的中位数为素数
解题思路
思维,bitset优化
先找出为素数的边,对于这样的边,只需找出有多少点到该边两端点的距离一大一小,可以先将所有边排序,这样找的小边一定在前面,用 优化,设素数边两端点为 , 表示点 和 点 是否遍历过,即是否 是否是小边,同理有 ,如果 和 一个为 一个为 ,即 ,即一大一小的边,则 满足条件,所有 对答案的贡献为 中 的数量
- 时间复杂度:
代码
7146. Laser
棋盘中有 个点,问是否存在一个点,其按米字形朝 个方向射出的光线能否包含所有点
解题思路
思维,计算几何
假设存在这样的点,假设第一个点在 米字形竖线/横线/正对角线/反对角线,枚举其他点,一旦与第一个点不同在 米字形竖线/横线/正对角线/反对角线 上,则可以确定米字形中心,进而判断是否满足要求
- 时间复杂度:
代码
7149. Alice and Bob
有 个 (), 每次可以将这些数划分为两个集合, 每次可以删除一个集合,同时另外一个集合所有数减一。如果任何时候存在 则 胜,否则 胜
解题思路
博弈论
需要对 构造一种必胜策略,考虑将 个 平分,即每次平分进两个集合,无论 如何选择,而由于每次平分后另外一个集合所有数减一,相当于将 减一,逆序处理所有的 ,累计所有贡献,只要判断最后轮次的时候是否还存在数即可,因为划分集合后选择权在 手上,如果 不采取平分的策略, 一定会删除对自己最有利的集合,而如果采取平分策略,即主动权掌握在 手上,无论 如何操作,其结果都是一定的。另一种理解:平分策略的任一子集是非平分策略的两个子集的中和,如果采取非平分策略, 可以删除使对 平分策略更差的子集,这样可能平分策略能获胜但有一步采取非平分策略结果却败了,故平分策略是最优策略
- 时间复杂度:
代码
__EOF__

本文链接:https://www.cnblogs.com/zyyun/p/16496292.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框架的用法!
2021-07-19 牛客2021暑假多校训练营2