7 月 25 日模拟赛

A. 子段乘积

期望得分:100pts

实际得分:100pts

一眼秒,最大子段和乘最大子段和/最小子段和乘最小子段和

B. 玩偶

期望得分:100pts

实际得分:100pts

md 这题做了我两个半小时,不知道脑子想什么去了,T3 都没时间想了

考虑枚举最后剩下来的最大的东西。那么就是要保留一些比当前玩偶小的玩偶,显然从最大值开始保留是最优的,那直接一个权值线段树不是直接做完了吗,不知道脑子在想些什么

C. 无人机

期望得分:rand pts

实际得分:0 pts

挂分原因:T2 做的时间太久了,导致这题没时间做了有 人机

实际上这题还是比较好想的,容易注意到上坡和下坡其实是两段对称的区间(下坡就是把上坡的垂直上升部分平移到在终点降落)。那么分别从起点跑一遍最短路和从终点跑一遍最短路在山顶拼起来就行了。需要注意到的是(考场上 40min 没想到)虽然这个点不一定是最短路上的山顶,但是可以是答案上的山顶,所以一个点的答案需要在他是这条路上的前缀最大值的时候更新。更新最短路当然还是用最短路更新

D. 交集

期望得分:15pts

实际得分:15pts

最后没有时间写 T4 的暴力了

唉,又是一道观察性质题。首先要能发现单独分组 > 嵌套的分组 > 相交的分组。然后就是一个对于连续段的 dp。有 \(f_{i, k} = \max(f_{j, k - 1} + w_{j + 1, i})\),其中 \(w_{j + 1, i}\)\(i\) 线段的右端点减去 \(j + 1\) 的左端点,令它们分别为 \(r_i\)\(l_j\),那么就有 \(f_{i, k} = \max(f_{j, k - 1} + r_i - l_j) = \max(f_{j, k - 1} - l_j) + r_i\),把那一坨扔到单调队列里优化即可

posted @ 2025-07-25 22:07  sb-yyds  阅读(6)  评论(0)    收藏  举报