这是一道好题,按行建线段树,每个点维护上下边界的连通性,详细见代码注释 网上写法不一,自认为比较简单,就放出来相出来献丑吧 ..,..] of longint; //u[]上边界,d[]下边界 s,fa,q:..] of longint; c:..,..] of longint; //维护对应颜色块数 a:..,..] of longint; j,i,n,m,x,y:longint; function getf(x:longint):longint; begin if fa[x]<>x the…