暑假集训D23 2023.8.21 contestH

H.Hardcore Hangman

题意:现在有一个隐藏字符串,你可以进行最多 \(7\) 次询问,每次询问一个字符串,系统会回答这个字符串中所有字符的位置(从小到大依次).现在请你做出合理的询问,找出这个隐藏的字符串.

\(\operatorname{Solution}\)
理解一下题意,就是可以询问若干个集合的并,求出每个集合的内容,然后就可以想到交并补差等集合运算。。。

然后发现如果我们询问一次? \(ab\),一次? \(bc\) ,就可以同时求出 \(a,b,c\) 三个字母各自的位置信息。然后我们的方案构造就一定是往3上面去凑。我们把26个字母平均分成三段(9,9,8) 但是为了避免分类讨论,我们直接认为27号字母有意义,但不存在于原串之中。
然后我们询问 \(?abc....r\) \(?jkl...z\),求出三个大小为9的集合信息,然后递归下去即可。

由于三个集合的交集为空,所以接下去一次查询可以同时对三个集合进行操作。

所以 \(f(n)=2+f(n/3)\),正好6次查完。

比赛总结

这次比赛过了 \(6\) 道题,貌似难度比之前几场略有下降?整体来看码字时间还是蛮充实的.这次比赛也是收获满满.

E

队友看出 \(E\) 题是矩阵快速幂的板子题,其实就是斐波那契数列变形后快速求第 \(n\) 项的数,这里 \(n\) 会很大.这里看了一下书上的推导过程,然后换了个数验证了一下发现没问题直接套板子就一发过掉了~ (感叹书的强大,模板真的全)做这道题顺便还复习了一下代数的知识23333

K

一道简单模拟题,队友讲了题意后上去很快就A了,%%

L

题目是找出合理的方法把一个长方形分成 \(n\) 个面积相等的小长方形,并且边长要是整数.貌似这题是道中档思维题,但是被队友轻松秒杀了.

I

题目可以转化成最短路问题.两个队友写了两份代码合力搞出来的(当时我在想 \(H\) 就没有参与,然鹅最后还是没把 \(H\) 弄出来(太菜了)

A

这道题题意读了半天没读懂...甚至样例都没看懂是在干什么.后来强大的队友发现,红色块的放置是要受到限制的,不是所有方向都能任意的放,我一直以为是可以任意的放,然后就搞不懂题目到底要干嘛.然后只需要枚举一下侧边长度即可~

C

一道挺简单的题目,和队友探讨了一下本来想用前缀和维护,但是每次修改的话再求和时间复杂度可能会超,然而树状数组虽然能过但是好久没写过了不太记得了.后面发现可以直接用 \(set\) 维护维修的路即可,然后二分找在两个点之间有没有维修就行了,我和 STL 我们俩合起来太强大了.jpg.

D

傻逼,没看到理解题意里要求时间递增,我就说怎么可能是简单的一个二分就能出的题.然而最后看到题解发现,这题其实最后如果时间充足的话应该是能想出来的,可惜时间不够了....

H

交互题一般都挺有意思的,可惜奈何绞尽脑汁感觉这题就是要出了,但就是出不来,赛时无论怎么想都要比合法情况多 \(1\) 次询问,最后无疾而终.

posted @ 2023-08-24 21:47  LZH_03  阅读(7)  评论(0编辑  收藏  举报