Contest 981

A

  • 自己就是不回文字符串,答案为 \(0\)
  • 自己是回文字符串。
    • 只由一种字符组成,答案为 \(\left|s\right|\)
    • 由至少两种字符组成,答案为 \(1\)

由于回文串中的字符,除了最中间本身对应本身的一段,旁边两两对应的必定要彻底相同,只要删除其中任意一个字符使它们不相同就行。spa

时间复杂度 \(O\left(\left|s\right|\right)\)排序

B

贪心,重复的选大的,没重复直接选。字符串

时间复杂度 \(O\left(\left(n+m\right)\log n\right)\)class

C

而后发现当一个子树的根结点拥有一个以上的儿子时,子树内的一些链与子树外的那一条链的公共点只能在子树的根结点。子树内若只有一条链,则不可能传出去;子树内如有大于一条链,则至多传一条出去。基础

这样的话子树外也最多只有一条链了,也就是说子树外一定是一条链。方法

因此整棵树最多只有一个结点的度能够大于 \(2\),也就是菊花图,每条链均从根到叶子便可。时间

时间复杂度 \(O\left(n\right)\)字符

D

套路题,很难直接记录值,按位肯定。math

判断写个 DP,令 \(f_{i,j}\)\(i\) 本书放了 \(j\) 个书架可否合法。枚举

时间复杂度 \(O\left(n^2k\log a\right)\)

E

超级好题,看得我一脸懵。

若是选取的操做区间均包含了某个位置,那么这个位置必定是最大值。

因而咱们考虑选取若干个操做区间使它们的并集非空(反之去掉一些操做区间不会形成影响),此时它们 \(x\) 的和就能够做为最大值。

将操做区间按右端点从小到大排序,依次处理。用 \(f_i\) 表示当前值为 \(i\),并集能取到的最右端点(贪心,越靠右越可能被新加入的区间覆盖),相似可行性背包转移便可。

最后若 \(f_i>0\) 说明 \(i\) 值可做为最大值。

时间复杂度 \(O\left(q\left(n+\log q\right)\right)\)

F

随机化好题。

有一个暴力的想法,暴力枚举一对新郎新娘,而后依次配下去,能够用调整法证实正确性。

而后加一个剪枝,若是当前最大值已经大于等于全局最小值,就跳出。

交一发,\(\texttt{TLE}\),被卡到了 \(O\left(n^2\right)\)

我能想到的方法是对着剪枝卡,将每次搞到的最大值从小到大和从小到大分别排一次序(不清楚枚举顺序),这样就很容易在其中一个点爆炸。

尝试随机枚举第一对新郎新娘,仍是被卡掉了。

如今就比较玄学了,咱们猜测它可能把距离全搞成有序的,也就是说在配的时候咱们不能及时跳出(虽然全局最小值能很快缩减)。

在刚刚的基础上随机配,这样它就卡不掉我了。

时间复杂度不是很清楚,先鸽着。

后面的题都鸽了。

相关文章
相关标签/搜索