比赛链接
A
矩乘优化 DP,卡常。
B
题意
给一个正整数序列 ,对 ,求 的子集 的数量使得 有一个子集 满足 且 。
分析
不是很好想的 DP。
答案初始为 ,考虑扣掉不合法的方案数。首先 的大小至少为 。
考虑到小于比大于好求,将题意对称转化,计数 ,其所有子集 满足 则 。
定义 表示选了前 个的一部分,和为 的方案数, 表示选了前 个的一部分,必须选 ,和为 的方案数,转移是显然的:
定义 表示前 个数中选和不超过 的方案数(必须选 ),则 。
扣除的第二部分可表示为 ,表示枚举 的范围(必须包含最后一位非常巧妙),在后面剩下的随便选 个组成 。
于是可得最终 的表达式。
时间复杂度 。
C
题意
甲乙轮流完成 项工作,甲做第 项工作的时间是 (甲之前做了 项工作),乙做第 项工作的时间是 (乙之前做了 项工作)。
求做完的最小时间。
分析
先假设全是甲做的,分开维护 的贡献 和 的贡献 。注意到将第 项工作从甲做变为乙做对 产生 的贡献,而 实际是 的一段前缀和,可以预处理。
所以可以把 插进堆里,每次取出最小值,过程中取 的最小值。
时间复杂度 。
H
神秘期望题。
I
题意
求满足 的排列 的个数。
分析
直接 DP,考虑往等式左右两边填数字。
定义 表示考虑 的前 位,此时等式左边有 个,左边和为 的方案数,则有转移:
分别表示放在左边或右边,然后滚动数组或倒序转移优化掉第一维就行了。
时间复杂度 。
K
题意
有一个初始全 的序列 ,每次可以选择一段连续的登高序列整体加一。要求序列的差分各项有最小值 。
问最小进行整体加一的步骤数。
分析
考虑 DP。
定义 表示前 个位置,当前高度为 的最小花费,枚举某一位是上升还是下降,在下降的时候统计贡献,则有转移:
L
最先开的一题,居然想到菊花图就不会了,耻辱柱。
题意
给一个不降序列 ,定义图的权值为 ,构造一个 点 边的无向图使得图的权值最小。
分析
图的权值和点的编号无关。可以先来一张菊花图,这样保证了最大用到 。然后就有多少边连多少边,任意一对距离为 的点都会在连边后变为距离为 。随便怎么连。
时间复杂度 。
M
题意
给长度为 的 ,长度为 的 。从 中选 个组成 与 匹配,最小化代价
分析
定义 表示在 的前 个中, 的前 个中选一部分的最小花费.
答案是 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】