[2024.11.25]NOIP全真模拟赛

总榜 rk6,但是发现只需要改 3s 的 T1 就可以拿到 rk2,但是没有如果。

赛时

T1 怎么像是原啊,算了反正不记得。

总结关键词:斜率为非负整数,直线在某区间内的高度有限制。

想了想,发现斜率最大值是 mn 级的,所以后面显然可以再乘上一个 n

于是有思路:枚举斜率 k,对每个元素计算想让直线经过它时所需要的 b 值,找到出现次数最多的那个 b 值,就得到答案了。

umap 担心会炸空间,所以我用正常数组存 b,每次清空就行了。

写写写,大样例过了,好了不管了。

T2 只会暴力啊。

继续想,发现我可以预处理正常删除到某个状态时剩余元素的个数。

发现每次可以 O(n2) DP 啊,我只需要一个 dpi,j=max(min(dpi1,j,dpi,j1),ci,j) 就行了,这样总复杂度是 O(n3) 的,有一个优秀的 50pts。

写写写,大样例过了(因为没给 5000 的样例)。

继续想,每次对 DP 数组的修改是不是有限的状态啊?然后就想到了 DDP,所以我不想了。

看 T3,发现我会 O(n4) 暴力。

写写写,小样例过了。

是不是只有颜色相同的那些点才是有用的啊?不对,随便一个颜色全相同的数据就能卡掉我。

看着可以用 LC 优化,但是我忘了怎么写 LC 了,跳了跳了。

看 T4,我会一个复杂度 O(nklog(nk)+mklog(nk)) 的算法。

写完以后发现不过样例。

打表,哎我的 size 怎么删除一次减少了 3 啊,我用的是 multiset 啊?

难道删一次会全删了么?好像还真是。

怎么办呢?我可以存结构体,哈希一下,就可以了。

写写写,怎么又挂了?

我突然想起来了 ,哦还真是这问题,改完就可以了。

比赛还剩 10min,摆了。

赛后

吃饭的时候发现 T1 我的桶里面会有负数,希望不会挂太多吧。

评测,看榜,HDS 用手法多拿了一堆分。

我 T1 水到了 55pts(小L:这都能 55pts?

最终是总榜 rk6。

image

T1 下发代码,加上偏移量,提交,通过,然后我就有 200pts 了,唉。

T4 告诉我们一定要记住

但其实也不用,删除的时候我们去删迭代器就可以了,比如 se.erase(se.find(k))

听讲评,T2 抽象模型以后类似网格图,每次修改确实是有限的,但是我那个思路不好走下去。

T3 如果把两步分开的话就有一个很简单的 O(n3) 算法了,加上 LC 就能过了啊。

T4 听懂了,大致就是每 k 个元素分块,发现块内随便做,块与块之间有最大值的性质,也能用线段树做,单点修改也能改。

只能说还行吧。

posted @   Redamancy_Lydic  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示