小明需要安排和基友开黑和和女神约会的时间。这两个时间总是一段连续的时间,小明总是会找最早的时间来开始这些事。当有基友找他开黑的时候,他会先在时间表里找最早的连续时间,如果有,就开黑,没有就不开黑。当有女神和他约会,他先在时间表里找最早的连续时间,如果有就约会,没有他会先不考虑和基友开黑,先和女神约会,如果有时间就约会。
因为涉及到基友和女神,那线段树里就需要维护两种连续区间,分别为女神的和屌丝的,区间维护三个,左边最大连续区间,右边最大连续区间,和总的最大连续区间。下推标记有三个:学习,屌丝,女神。最容易错的地方是下推标记。当标记学习的时候,屌丝和女神标记应当还原,当标记女神的时候,屌丝标记也应当标记上(因为更新女神所占用的时间的时候,其实屌丝的时间也需要更新)
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include <string>
7 #include <string.h>
8 #include
9 #include