subtask2全wa了,不知道是不是我的并查集写的有问题,敢请各位dalao看看。
inline void pre(){
for(int i=1;i<=n*2;i++) root[i]=i;
}
inline int find(int k){
if(root[k]==k) return k;
return root[k]=find(root[k]);
}
inline void merge(int x,int y){
int fx=find(x),fy=find(y);
int px=find(x+n),py=find(y+n);
if(fx==fy){
ju=0;
}
else{
root[px]=fy,root[py]=fx;
}
}
for(int j=i+1;j<=n;j++){
if(dist(i,j)>=k){
merge(i,j),
merge(j,i);
}
}
}