好题,先离线把连通块变成连续的区间每次连通块合并就相当于两个区间合并这样就轻易的用线段树解决了 type node=record wh:string[]; x,y:longint; end; ..*] of longint; q:..] of node; a,b,c,last,next,fa:..] of longint; i,n,m,x,y,t:longint; ch:char; procedure swap(var a,b:longint); var c:longint; begin c:=…