11.3模拟赛总结

Posted 卿吟酒

tags:

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

打的蛮开心的

主要是打到最后灵光一现还是很爽的)

但不得不说,今早真的好困啊,起码有一个小时都不精神)

最后飞速写T1的时候还一直打嗝,自闭死了

隔空和岳老师比个心(´∀`)♡

时间安排

7.50-8.15 看题

8.15-8.30 推T1(数据结构方向),没啥想法之后跑了,准备回头打暴力

8.30-9.15 推+写T2

9.15-10.08 推T3(推了很多结论但然并卯)

10.08-10.30 决策了一下还没写的T1,T4 觉得继续吊死在T3上也没什么结果,打了T3的暴力,跑了

10.30-10.50 T1暴力

10.50-11.20 推T4,试图暴力发现复杂度不对

11.20-11.30+ 造数据验了一下T2

11.40-12.00 觉得摆烂不好,于是盯着T1试图重新挣扎一下,抛弃所有想法之后重新构思,飞速得了个结论,于是尝试写了写,发现和暴力拍是对的,搞成分段

12.00-12.10 再测了测数据 检查了一下,交题

题目分析

T1

显然,可以考虑每个块的出现次数,再考虑它对答案的影响

每个块会出现 2 n − 1 2^{n-1} 2n1次,题目给出一个很好的性质,保证了 l , r l,r l,r不重合

所以考虑 ,什么时候多个块会成为连通块?

其实当且仅当 A A A块的左端点大于 B B B块的左端点,且 A A A块的右端点小于 B B B块的左端点

因此我们考虑,对于多个块合并成的一个块,如何统计答案

事实上,我们可以考虑把这些块的贡献都放在第一个块上去考虑

所以,把所有块按左端点排序,这样可以保证左端点小于 B l B_l Bl 的限制,开个树状数组,每个块用完之后,把它的右端点加入树状数组,来查询右端点大于 B l B_l Bl 的限制。

考虑第 i i i 个块算答案时,贡献就是 2 n − 1 − ( i − 1 − c x ( l ) ) 2^{n-1-(i-1-cx(l))} 2n1(i1cx(l))
(cx(l),查询出前i-1块有多少个右端点小于 l l l,相减就是有多少个大于 l l l)

T2

dp还挺显然的

直接考虑到前缀和维护某个连续段改成某个字符的代价是多少

f [ i ] min ⁡ t = 1 m s [ t ] [ i ] + min ⁡ j = p i − p ( f [ j ] − s [ m ] [ j ] ) f[i]\\min\\limits^{m}_{t=1}s[t][i]+\\min\\limits_{j=p}^{i-p}(f[j]-s[m][j]) f[i]t=1minms[t][i]+j=pminip(f[j]s[m][j])

因为刚做了蜜蜂搬家,第一想法是“线段树上这不随便维护”

改了改式子 发现“单调队列不随便做”

又定睛一看“ j j j 根本不动,这直接取min就行吧…”

感觉这题应该放T1

T3

可以看出是一道好题

想到,可以用线段树维护,当在 x x x的子树内最小值为 y y y时,最多可以选取的点数

结果发现,我不会合并和转移这玩意…(最怕空气突然安静)

赛后

看题解,好像用来暴力那个程序改成用线段树合并做就是对的,赛时没考虑好,其实好像,线段树合并就是把原本暴力的东西复杂度变成log

T4

就差突脸上给你说是三进制状压了…

思考的时候被“如何解决 a a a打不到 b b b,但是 b b b能打到 a a a的情况”

赛后总结

  1. 考场不要摆烂,你永远不知道考试结束和灵光一现哪个先来

  2. 不要看着方案统计之类的就感觉是dp/数据结构乱搞,其实有时候把这些东西放掉再思考问题,可能会有新的想法

赛后得分分析

1.更进一步思考的话,可以考虑到,T3的线段树合并过程,其实就是用线段树在维护dp,如果考场代码能敲完(大概率是敲不完,没怎么写过线段树合并上的延迟下传),可以多拿60

2.这场没犯错

3.合理安排时间同1,少搞点就算可以看出来是状压也整不出来的4,多看看3,可能就能想到合理的线段树写法

以上是关于11.3模拟赛总结的主要内容,如果未能解决你的问题,请参考以下文章

今天更新到 macOS Big Sur 11.3 后,Android 模拟器无法启动

从 Xcode 11.3 启动 iOS 模拟器并出现黑屏

11.3 AHSOFNU 校内模拟

XCode 11.3 崩溃,iOS 13.2.2 模拟器 iPhone X 和 watchOS 4.2 Apple Watch 42mm

[The Diary] 11.3 Friday

Xcode 11.3“没有可用的条件”