Codeforces Round 945 (Div. 2) (A - E)

A#

每一轮对总分的贡献都是 2,如果 p1+p2+p3 为奇数则无解。

  • p1+p2p3,最多 p1+p2 轮。
  • p1+p2>p3,可以 1,2 轮流将 3 耗完,然后互相匹配,最多 p1+p2+p32

B#

  1. 如何判断一个 k0 是否符合条件?

    处理每一位的前缀和,依次检查每个长度为 k0 的子串,O(NlogN)

  2. 如果 k0 符合条件,则 k1=k0+1 是否符合条件?

    si=aiai+1ai+k01

    si=si=aiai+1ai+k1=sisi+1

    由于 i,j, si=sj,所以 i,j, si=sj

答案具有单调性,考虑二分,复杂度 O(Nlog2N)

C#

长度为 n 的序列最多 n/21 个局部最大值。

是否能达到这个上界?

钦定 n/2 个位置为局部最大值,给这些位置按数值从大到小分配 n/2+1n ,给其他位置按数值从大到小分配 1n/2

钦定位置的最小值可能为 n+1,其他位置的最大值也可能为 n+1,不好判断。

如果钦定位置一定包含数值 n 呢?

钦定位置至少为 n+1,其他位置最大只有 n

因此,只要在选定 n/2 个位置后,按上述策略分配即可。

由于局部最大值两两不相邻,不妨按照 n 所在位置的奇偶钦定全部奇数位或全部偶数位。

D#

  1. 答案 m 一定是最大值 mx 的倍数。
  2. 最短子段长度不大于 n/k
  3. m 一定不大于 mxn/k 倍。

于是先花 n 次操作找到最大值 mx

再枚举 mmx 的几倍,每轮不超过 k 次,总共不超过 n 次。

E#

  1. 如果 l,r 合法,则 ll, rr 合法。
  2. 找到 ipi 的最小位置和最大位置 L,R,则一定满足充分条件 lL+nrR+1

先看 l=r 的情况。

满足 aii, r=ai+i,则答案加一。

再看 l<r,不妨枚举 r[R+1,2n],找到合法的最大 l

将可以交换的点对 (x,y) 间连边。

l=r1 时,整张图就联通了,也就是任意两个数可以通过若干次间接操作交换,此时一定合法。

得到 l 的上界即 min(r1,L+n)

posted @   Lu_xZ  阅读(113)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示