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 好可惜。”)

以后做简单题要细心点不然会被细节坑啊。

posted @ 2026-03-23 20:55  嘎嘎喵  阅读(39)  评论(0)    收藏  举报