本题考察了贪心的思想。
40pts
一一枚举任意两个点,进行最大值的求解。
+40pts
假设两个点的横坐标和纵坐标之差分别为 ,问题等价于最大化 容易发现在 时取到最大值 。
当 时,,两个点的横纵坐标之差恰好相同,所以答案为 。
当 时,,两个点的横纵坐标之差恰好相同,所以答案为 。
100pts
给出结论,将所有点按 排好序或按 排好序,把任意两个相邻节点的答案取最大值,即为最终答案。
以下给出具体证明。
根据部分分的启发,容易发现两点连线和 轴的坐标越靠近 或 答案越优。
我们把整个坐标轴旋转一下,原本点 变成 ,即以 和 两条线作为旋转后的坐标轴。
那么问题就变成了找到两个点,它们和 轴或者 轴的夹角尽量小,可以证明,一定满足一对点,它们按 排序或按 排序是相邻的,所以问题得证。
主要考察了构造的思想以及数论的相关内容。
30pts
通过搜索进行暴力求解。
+10pts
任意发现 为偶数时需要奇数条边,每次加两条边不可能满足条件,所以无解。
+30pts
时,容易发现 这些数两两不同。
那么按照这个顺序,第一次操作取 ,第二次操作取 以此类推,即可连出一条链。
100pts
我们把所有数按如下方式写出来。
其中矩阵的列为 。
以 为例
因为 为奇数,所以这个矩形的行和列一定都是奇数。
我们可以把每个点都和它右下角的那个点连接,例如操作 可以同时把 连接,操作 可以同时把 连接,因为每行每列都是奇数,所以这个操作一定是可行的。
现在每条从左上到右下的斜线都已经联通了,我们需要把剩下的这些线连接在一起形成树。
注意到我们每次选择一个点和它正下方的那个点,把任意两条相邻的斜线连接,例如 这三条直线可以通过操作 操作直接相连。
那么按照这个顺序把所有相邻的斜线全部连接即可。
时间复杂度为 。
主要考察了性质观察以及动态规划的相关内容。
10pts
直接输出 即可。
20pts
通过爆搜,每次暴力枚举括号插入位置。
40pts
通过状态压缩DP,记录插入 次操作以后,所有括号序列得到的概率,时间复杂度为 ,实际复杂度远小于这个值,因为并不是所有括号匹配都能够最终得到。
70pts
容易发现,括号序列一共有 种生成方式。
假如 ( 为 ,) 为 ,那么一个序列合法的充要条件为:最小前缀和为 ,且以 结尾。
现在考虑维护这些前缀和。
如果我们在当前序列某一位后插入一个 (),且那一位的前缀和为 ,那么相当于把 替换成 。
同理可知,插入 )( 相当于把 替换成 。
我们观察到每次选中的数概率是均等的,所以我们并不关心数的顺序,只关心这个前缀和数组中每个数出现了多少次。
定义 为前缀和数组一开始只有一个数,这个数为 ,执行 次操作以后得到的前缀和数组中每个元素均不小于 的概率。
有两种转移,第一种下一步变成了 ,那么概率为
第一种下一步变成了 ,那么概率为 最终答案即为 ,时间复杂度为 。
100pts
只需要将上面的 DP 过程优化即可,优化的思路很多,以下给出一种。
以第一种转移为例,引入辅助DP数组 。 的计算是 的,再通过 计算第一种情况: 相当于对于 三维不一起枚举,先合并 ,再合并 ,时间复杂度为 。
50pts
可以按如下方式进行DP,考虑 表示跨过 号点,梦梦执行了 次操作,熊熊执行了 次操作,且 编号内的所有白魔法全都满足要求的情况下,当前的最小消耗是多少。
注意到 ,这个过程中 ,利用滚动数组,时间复杂度为 ,其中 为值域。
100pts
考虑可能的白魔法序列 满足什么条件,可以考虑反向操作,将这个序列减为 。 考虑差分,如果 ,那么至少要进行 次前缀 减一的操作。反之亦然。 上述操作完之后,所有的元素都变成相同,如果这个时候 非负,那么满足条件。 为了方便,我们在序列开头和末尾添加两个足够大的元素 ,上述条件就是 。
因为 足够大,所以上述条件可以转化为 在原问题中,代价总和就等于 之和,所以问题可以转化为,可以花 的代价让 加上 ,问最少的代价满足上述条件。
令 。每次我们可以选择一段极长的相 同的 ,并且 ,将这一段加一就能将 整体地减少 。这样操作的代价为这一段的长度。 我们贪心地找这样最短的极长段即可,可以对这一段加,然后加到这一段与两头的某个数字相同为止。一直做到 不超过 。 考虑段合并的过程,最后一定是所有数和最大的元素合并, 往前就是左右两边独立合并。这个与笛卡尔树比较类似。 我们求出笛卡尔树之后,就能快速得到所有段合并的过程, 并且从短到长贪心即可。时间复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效