2023寒假网课

文章目录

  • 2023.1.13
    • 最优贸易简化版
    • 弹飞绵羊
    • 蒲公英
    • 动态逆序对

2023.1.13

最优贸易简化版

题意:给定一个长度为 n n n 的序列 a a a m m m 次询问,每次询问区间 [ l , r ] [l,r] [l,r],求 max ⁡ { a i − a j ∣ l ≤ j < i ≤ r } \max\{a_i-a_j|l\le jmax{aiajlj<ir}
思路:考虑使用并查集,在回答当前询问时右端点为 r r r l l l 在找父亲时,维护到 r r r 的信息。离线读入,把询问储存在右端点(因为回答时是以右端点为基准的),扫描每个 i i i,回答答案,此时父亲都是这个右端点,然后用个带权并查集维护即可,然后把 i i i 连接到 i + 1 i+1 i+1 即可。

弹飞绵羊

题意:给定 n n n 个连续排列的弹力设备,设备 i i i 可以往后弹 k i k_i ki 的距离,如果位置没有设备停止往后弹。支持两种操作:

1.更改某个设备的弹力
2.求从任意一个点开始可以被弹几次

思路:考虑维护每个点跳出块后需要几步和跳出块后的位置,暴力预处理即可,时间复杂度 O ( n n ) O(n\sqrt n) O(nn )

蒲公英

题意:给定长度为 n n n 的序列, m m m 次询问,每次询问区间 [ l , r ] [l,r] [l,r] 中众数是哪个数,有多个,输出最小的。
思路:先分块,然后预处理一段区间块内的众数,再预处理前缀块内的某个数出现次数。然后分类。如果在一个块内,暴力查询;如果有散块,就枚举那个数,然后将在整块中的个数和散块中的个数相加即可。所以时间复杂度是 O ( n n ) O(n\sqrt n) O(nn )

动态逆序对

题意:给出 1 ∼ n 1\sim n 1n 的一个排列,按照某种顺序依次删除 m m m 个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。
思路:

你可能感兴趣的:(算法)