• 【学习笔记】前缀和+差分


    「JOISC 2019 Day2」两道料理

    我会暴力!!10pts滚粗

    我会转化!!记 s a i = ∑ j = 1 i a j , s b i = ∑ j = 1 i b j sa_i=\sum_{j=1}^i a_j,sb_i=\sum_{j=1}^i{b_j} sai=j=1iajsbi=j=1ibj

    x i = max ⁡ { j ∣ s a i + s b j ≤ s i } , y i = max ⁡ { j ∣ s b i + s a j ≤ t i } x_i=\max\{j|sa_i+sb_j\le s_i\},y_i=\max\{j|sb_i+sa_j\le t_i\} xi=max{jsai+sbjsi}yi=max{jsbi+sajti}

    c i c_i ci表示完成 I O I IOI IOI i i i个步骤后 J O I JOI JOI的完成数目

    那么 c i ≥ c i − 1 c_i\ge c_{i-1} cici1,答案是 ∑ i = 1 n p i [ c i ≤ x i ] + ∑ i = 1 m q i [ c y i ≥ i ] = ∑ i = 1 n p i − ∑ i = 1 n p i [ c i ≥ x i + 1 ] + ∑ i = 1 m q i [ c y i ≥ i ] \sum_{i=1}^np_i[c_i\le x_i]+\sum_{i=1}^mq_i[c_{y_i}\ge i]=\sum_{i=1}^np_i-\sum_{i=1}^np_i[c_i\ge x_i+1]+\sum_{i=1}^mq_i[c_{y_i}\ge i] i=1npi[cixi]+i=1mqi[cyii]=i=1npii=1npi[cixi+1]+i=1mqi[cyii]

    d p j dp_j dpj表示完成 J O I JOI JOI j j j个步骤的最大评分。转移的本质是对若干段后缀加一个值,然后取前缀 max ⁡ \max max

    发现前缀 max ⁡ \max max可以暴力做。维护其差分序列,可以用 s e t set set模拟,具体 ( l , x ) (l,x) (l,x)表示 l l l位置的差分序列是 x x x。如果 x < 0 x<0 x<0那么删掉这个位置,然后让后继的差分 + x +x +x

    复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)

    第一步没转化出来就很尴尬

    AC Code

    Juju and Binary String

    巧妙的题目。

    将字符串 s s s拼成一个环,那么一定存在长度 m m m的子段满足条件。因此答案不超过 2 2 2

    证明:设 a i a_i ai表示 [ i , i + m − 1 ] [i,i+m-1] [i,i+m1] 1 1 1的数目。记 p p p表示原串中 1 1 1的数目, t o t = p m n tot=\frac{pm}{n} tot=npm 。注意到 ∣ a i − a i − 1 ∣ ≤ 1 |a_i-a_{i-1}|\le 1 aiai11,因此我们只需要证明 min ⁡ ( a i ) ≤ t o t ≤ max ⁡ ( a i ) \min(a_i)\le tot\le \max(a_i) min(ai)totmax(ai) 。证明考虑 ∑ i = 1 n a i = m × p \sum_{i=1}^na_i=m\times p i=1nai=m×p

    「EC Final 2018」Exotic … Ancient City

    不会不会不会

    我会转化!!问题转化为求生成树上 ≤ w \le w w的边的数目

    显然我们只关心 ( i , i + 1 ) (i,i+1) (i,i+1)层的连通性 并不显然

    那么维护大小为 2 n 2n 2n的并查集。递推到下一层时,继承了上一层的连通性,并且若上一层右部图 ( u , v ) (u,v) (u,v)联通,则下一层左部图 ( u , v ) (u,v) (u,v)也联通。

    看起来很玄学。并查集时设右部图为根。

    具体看实现 AC Code

    Frequency Problem

    结论题。

    我会转化!!最优区间的众数 x x x一定包含全局众数。

    那么枚举另一个众数 y y y,可以前缀和优化到 O ( n a ) O(na) O(na)

    我会优化!!

    对于出现次数 ≥ n \ge \sqrt{n} n 的,还是前缀和优化,复杂度 O ( n n ) O(n\sqrt{n}) O(nn )

    对于出现次数 < n <\sqrt{n} <n 的,枚举区间里全局众数的出现次数 i i i,判断其极大区间是否存在另一个数的出现次数不少于 i i i,复杂度 O ( n n ) O(n\sqrt{n}) O(nn )

    这样可以通过Hard Version。

    Mobile Phone Network

  • 相关阅读:
    基于Layabox引擎的魔塔微信小游戏设计与实现
    SpringBoot业务开发 05、SpringBoot集成JSR303实现参数校验+全局异常捕捉
    骨传导耳机是怎么传声的?骨传导耳机到底有哪些好处?
    ITSS云能力评估是什么?
    【JS进阶】防抖与节流
    嵌入式开发学习之--RCC(上)
    Sql语句大全--插入
    TomCat运行记录乱码
    牛顿法与拟牛顿法摘记
    打印星堆(for循环嵌套实例)
  • 原文地址:https://blog.csdn.net/cqbzlydd/article/details/126344519