可以看出这道题询问的是连通岛屿的多少,而与连接方式无关。操作则是将岛屿连通。自然,这道题应该运用并查集。因为要询问集合的大小,只要另开一个数组记录即可。
需要注意的是什么时候更新集合大小。
只需在建立新的父子关系的时候更新集合根节点的大小即可,路径压缩的时候不用更新。
因为这样可以保证每个集合的根节点储存的大小在任意时刻都是其集合的大小。
program tyvj_1721;
var fa,num:array[1..10000] of longint;
//============================================================================
function getfa(x:longint):longint;
begin
end;
//============================================================================
procedure main;
var i,q,c,s,t,f1,f2:longint;
begin
end;
//============================================================================
begin
end.