你说得对。
慎用 std::cerr 和 fprintf(stderr...)!!!
一棵线段树维护从别的地方进来,一棵维护出去。前者内部从大往小连边,后者相反。
注意两棵树对应叶子节点连边。
dij 不要写挂。
时间复杂度近似 \(O(n\log^2 n)\),实际 \(O(n\log n\times \log n\log n)\)。
感觉写法挺优美的
通常只是作为一个辅助。