数据结构学习笔记

CF482B Interesting Array

https://www.luogu.com.cn/problem/CF482B
两种做法
1.拆位后把=1的转换为区间赋值,=0的贪心的转换为区间询问check用差分和前缀和实现即可
2.把所有限制转换为区间或,然后再检查一遍所以限制是否满足,线段树维护即可

[\ ]

CF187D BRT Contract

https://www.luogu.com.cn/problem/CF187D
显然可以考虑维护0时刻从每个路口到达终点需要多久
这个玩意dp的话发现转移的时候需要找到最近的被红灯拦下的点
然后写一下式子的话发现就是

[(s_k-s_i) mod mo>=g \ 其中mo=g+r ]

对于这种同余不等式
(s_k)的范围显然可以拆成两个区间的形式
因此我们只需要倒序dp
然后用线段树快速找出指定区间中编号最小的路口进行转移即可
对于每一次询问也是同理
也是快速找出第一次会在什么位置被拦下即可

[\ ]

与mex有关的数据结构问题

https://www.cnblogs.com/Creed-qwq/p/13884841.html

原文地址:https://www.cnblogs.com/Creed-qwq/p/13878528.html