2024.8.9 鲜花

推歌:早安大森林

模拟赛乱写(你猜我欠了多少。

  1. 嘉然登场

    确实是好玩的题。

    考虑先将其分成两组,一组 \(<\frac k2\),一组 \(\ge\frac k2\)

    考虑使一个数在填的时候使所以剩余数都可以填它旁边,或都不可以。

    可以将每个 \(<\frac k2\) 的数对应其最小可以放的 \(\ge\frac k2\) 的数,然后从大往小放 \(\ge\frac k2\) 的数,每次放完后将所有与它对应的数都一块放了。

  2. Clannad

    考虑其本质是求虚树大小。

    考虑一个点在虚树内有两个限制:

    1. \(u\) 子树内存在至少一个属于序列区间的点。

    2. \(u\) 子树外其他点和 \(u\) 构成的子树内至少存在一个属于序列区间的点。

    发现满足第一个限制但不满足第二个限制是好求的,直接求区间 \(lca\) 即可。

    考虑用满足 \(1\) 的减掉满足 \(1\) 且不满足 \(2\) 的点。

    对于满足 \(1\) 的点,考虑离线,扫描线可以维护右端点。新加一个点,就对其到根的路径染上当前颜色,最后统计颜色在 \([l,r]\) 之间的点个数即可。

    染色可以珂朵莉,统计用树状数组就行。

  3. 修水管

    这是逆天状态的 \(dp\) 和逆天读题

    考虑求 \(r\) 轮中第 \(i\) 段被修复的概率。

    考虑转移,发现其之和有几次水流到过有关,所以设 \(dp_{i,j}\) 表示前 \(i\) 个位置,在 \(r\) 轮中修复了 \(j\) 次的期望。

    \(dp\) 枚举当前是否修过转移,然后就都可以直接推了。

  4. 小孩召开法 3

    trick 猫树分治。

    考虑类似猫树,每次对分割点左右进行处理,查询可以直接合并。

    发现空间不太够,可以将其离线,对在哪一层排序,只维护一层信息即可。

  5. 桥桥

    记一下 Kaguya 发现的将 \(\log\) 换成 \(\alpha\) 的做法。

    首先对询问分块,每块先将这块之前的修改改掉,对于块内的修改,每次查询时暴力跑一遍,在撤销即可。

    用可撤销并查集维护,可以干到 \(n\sqrt n \log n\)

    考虑前缀的时间排序,可以直接归并,将 \(\log n\) 乘在 \(n\) 上,调整块长可以做到 \(n\sqrt{n \log n}\)

    考虑整一下并查集,发现可以路径压缩,对于块内的询问,最多一次完全展开是 \(\sqrt n\) 最多 \(n\) 次,不会有复杂度问题。而加边查询的 \(\log\) 就变成了 \(\alpha\),复杂度 \(n\sqrt{n \alpha(n)}\)

    但因为常数问题,其实很难跑过带 \(\log\) 做法。

  6. 春色春恋春熙风

    树上启发式合并板子。

    考虑每次数组维护重儿子信息,轻儿子跑暴力即可。

    线段树合并在 CF 上也能过,学校 OJ 跑不过去。

  7. 雪色雪花雪余痕

    发现其就是维护凸壳。

    考虑凸壳性质,其差分序列不降,可以直接跑 \(dp\)

    \(dp_{i,j}\) 表示用 \(i\) 个正数,和为 \(j\),因为差分不降,所以最少是 \(\sum\limits_{k=1}^i k=j\)\(i\)\(\sqrt m\) 级的。

    因为有非负限制,考虑枚举最小值的最左边位置,钦定最小值为 \(0\),最后在平移。

    左边长度是定值,右边是一个 \(\le k\) 的限制,用前缀和做掉,平移也可以用前缀和。

    时空都带根号,用撤销空间可以省掉根号。

没有鲜花可以不写,不要写这种东西脏了我的眼

一张穗?

posted @ 2024-08-09 21:21  xrlong  阅读(57)  评论(1编辑  收藏  举报