11 2013 档案
摘要:1 var 2 a,d:Array[-1..300000]of longint; 3 i,n,m,k,l:longint; 4 function erfen(x:longint):longint; 5 var mid,h,t:longint; 6 begin 7 h:=1;t:=l; 8 erfen:=0; 9 while h=d[l] then26 begin27 inc(l);28 d[l]:=a[i];29 end30 else31 begin32 k:=erfen(a[i]);...
阅读全文
摘要:题目大意:有两个帮派,命令D a b表示a,b两人不在同一个帮派里,动态询问两个人是不是在同一个帮派。并查集。d[x]=0 or 1 表示x是否与根节点在同一帮派。碰到D a b 就合并,同时d[fa]:=(d[a]+d[b]+1) mod 2.路径压缩的时候维护一下就好了,方法如下。1 function find(x:longint):longint;2 var fa:longint;3 begin4 fa:=f[x];5 if f[x]=0 then exit(x);6 f[x]:=find(f[x]);7 d[x]:=(d[x]+d[fa])mod...
阅读全文