题意很简洁,这里就不复述了
这题其实是WC最短路的超级简化版,方法类似
大概就是用一个线段树维护一个区间的左端点到右端点的连通情况,这个信息显然是可以合并的
由于只有两层,所以我维护了如下几个信息
左上-左下
右上-右下
左上-右上
左上-右下
左下-右上
左下-右下
的连通性
修改的时候直接改就可以了,至于询问,由于我们维护的是仅在当前区间走的信息,而最终的路径可能跨区间,所以询问(l~r)时,不仅要求出(l~r),还要询问(1~l),(r~n),讨论一下最终路线的3种情况更新答案即可
ps:速度很慢,代码量不错