SD6.20集训总结

Posted Flame♡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SD6.20集训总结相关的知识,希望对你有一定的参考价值。

ok 今天不是很困 有一个很好的开始

我好像发现了一个事,我很怀疑我的困意是否是由今天的题是否套路决定的(身体自动检测题是否套路 不套路的话就帮我释放困意)

时间安排

8.10-10.00

看题 感觉都还挺做的 显然T1 log左右 T2 是个矩乘(n^3 感觉很像) T3应该是个分块 (1G)

然后推了推T1 想了个二分+线段树做法 感觉跑log^2有点危险于是又想了一会 但还是直接写了

然后一测试4s 危

10.00-10.20

考虑到不带修rmq直接st表做就好 秒少1log

于是我狂改 改完之后又加快读 最后就0.6s了

10.20-11.00

想了一会T2 T3,T2会做状压分,T3想了一会 感觉nq 但又有点没想法

11.00-12.05

写了状压 跑了跑数据发现这个没法过20 而且突然发现k=5那一档我这个数组开的不对。

突然一呆(计算器摁错了)以为k=5那一个要单开写 越写越怪(发现复杂度一样啊) 然后手算了算 发现不用单开。

浪费了我的宝贵时间(怒

12.05-12.50

想了一会T3 反应过来可以双指针 搞一个桶 cnt 双指针维护就好(不合法的时候挪动指针 长度不增)(30

然后nq的做法过了50)

题目分析

T1

考虑对于 a [ i ] a[i] a[i] 找到最近的后继 x − a [ i ] x-a[i] xa[i]

然后二分它可控的区间

同时为了避免重复计算答案 二分时需要注意一下

T2

考虑状压dp f [ s , x ] f[s,x] f[s,x] 表示用的按钮集合为 s s s 当前在点 x x x 的方案数 注意到 因为大的只能恢复小的 最终大的一定无法被复原,所以答案一定有限,状态也一定从小到大

然后dp!

T3

考虑双指针 然后如果 r − 1 r-1 r1 之后 答案变得不合法了 那么让 l + + , r + + l++,r++ l++,r++ (区间只有变小才可能成为更优秀的答案)


感觉今天的成绩是比较中规中矩的 发挥正常的(甚至T3还超出了一点我的想象)

不过如果更好的话 可能是希望T3多做一点比较切合实际(看榜也是这样)

以上是关于SD6.20集训总结的主要内容,如果未能解决你的问题,请参考以下文章

SD6.18集训总结

SD集训6.21总结

SD6.24集训总结

SD6.23集训总结

7.6~7.20集训总结

暑假集训D9总结