Link
Solution
考虑最最最暴力的做法 每个限制是一个区间集体小于一个点的条件,那就把区间的每个点依次向这个点连长度为的有向边,然后拓扑序。 好吧显然这个做法是闹着玩的 然后考虑一个优化的做法:每个限制建立一个新点,点到点连,区间集体到点连,然后拓扑序。(为什么让我想到了SAM的构造233) 这个虽然科学了一些,但显然还是啄急。 然后高能: 考虑到每个限制是一个区间连到点的形式,那就用线段树来优化,把区间拆成段,
Tips
Code
1 |
|
考虑最最最暴力的做法 每个限制是一个区间[l,r]集体小于一个点u的条件,那就把区间的每个点依次向这个点连长度为1的有向边,然后拓扑序。 好吧显然这个做法是闹着玩的 然后考虑一个优化的做法:每个限制建立一个新点p,点p到点u连1,区间[l,r]集体到点p连0,然后拓扑序。(为什么让我想到了SAM的构造233) 这个虽然科学了一些,但显然还是啄急。 然后高能: 考虑到每个限制是一个区间连到点的形式,那就用线段树来优化,把区间拆成logL段,
1 | #include "lucida" |