20260321 模拟测 总结
Preface
六六六好一个 \(390\) 挂分在 T1 啊我也真是不行了。
差一点点就 AK 了。
T1
| 估分 | 得分 | 挂分 |
|---|---|---|
| \(100\) | \(90\) | \(10\) |
有点气。
分类讨论 \(\le\),\(\ge\) 和 \(\not=\) 三种情况,讨论一下 \(-1\) 和 \(0\) 的情况,其他直接除就可以了。
一定要注意判掉 \(c=0\) 的情况,一种都不能漏,一不留神就 RE 了。
T2
| 估分 | 得分 | 挂分 |
|---|---|---|
| \(100\) | \(100\) | \(0\) |
二分价格,然后题目所说的挨个算出供给量和需求量,利用差决定价格是往大调还是往小调。最后有两种可能是最终答案的情况,要对它们的结果取 \(\min\)。
T3
| 估分 | 得分 | 挂分 |
|---|---|---|
| \(?\) | \(100\) | \(?\) |
我的解是假的,但是线性。
实时模拟这个读心术的过程,令最初选的数为 \(x\),维护 \(ax+b\) 表示读心术进行到这一步的状态,最后判断是否 \(a=0\) 即可。
中间要注意取模,不然一直乘加会炸掉。以及如果有乘 \(0\) 则直接成功。
但是?这样肯定不对啊。因为你在做取模的时候,只会对 \(a,b\) 取模,肯定没有取模干净,因为还有 \(x\) 自身的值嘛!所以是不对的,是一个假解。
然后我赛时对拍发现了这个问题就套了一个随机数,随机选 \(100\) 个不同的 \(x\) 判一下是不是全相等,加上我的假解,数据水就这么放我过去了。(无语(窃喜
显然老师倒着搞的做法才是正解,枚举最终结果然后看能不能倒推出一个合法的 \(x\),如果有两个不同的结果倒推出了原始值那就错了否则是对的。
T4
| 估分 | 得分 | 挂分 |
|---|---|---|
| \(100\) | \(100\) | \(0\) |
不会有人在这题做 DP 的时候智商给了个六千多的上限吧 0.0 显然所有 \(>150\) 的都可以当做 \(150\) 来看啊。典型的没做过 25 J T4。qwq
可我觉得很水啊。
考虑到同种事可以同时做,效果和分开做没有区别。并且显然可以优先做需要智商低的事,于是把事件按照需要智商升序排序然后依次考虑。
\(dp_{i,k,iq}\) 表示当前考虑了前 \(i\) 件事(排序后的),游戏进行到第 \(k\) 个回合,且当前的智商为 \(iq\) 的情况下最高的面子值。就如同第一段说的,\(iq\) 中所有 \(\ge 150\) 的都视作 \(150\)。
依次枚举 \(i\),我们考虑扩散型转移。枚举第 \(i\) 个事件做的次数(显然这里枚举最多也就 \(\max(IQ_{add},face)\) 次因为之后没有贡献了没必要做),利用等差数列求和公式(其实枚举也行)可以快速求出其对智商和面子的增加,然后转移就行。
最后的答案显然就是 \(\max dp_{m,n,i}\),但是这对吗?并不对,因为上面我们加了一个小小的优化:
……枚举第 \(i\) 个事件做的次数(显然这里枚举最多也就 \(\max(IQ_{add},face)\) 次因为之后没有贡献了没必要做),……
尽管这样是很大程度上加快了 DP 的速度,但是可能 \(n\) 太大做到最后已经不存在做了有贡献的事情了,此时还是得继续接下来的回合,所以答案是 \(\max dp_{m,j,i}\)。
最好滚动数组优化一下,不然空间疑似有点炸裂。
Summary
冷知识:我 T4 赛时写了一个爆搜和我的 DP 对拍,但是错的组爆搜的答案总比 DP 少 \(1\),但是我找不出我 DP 中的错误所以没改代码。既然 T4 过了,我只能理解为,要么我的 DP 是错的数据水了,要么我爆搜写错了,个人倾向于后者。
T1 好可惜。T1 好可惜。T1 好可惜。T1 好可惜。T1 好可惜。T1 好可惜。T1 好可惜。T1 好可惜。T1 好可惜。T1 好可惜。(此处省略 \(\infty\) 个“T1 好可惜。”)
以后做简单题要细心点不然会被细节坑啊。

浙公网安备 33010602011771号