>1;
int midx=p[mid].first;
//divide,conquer
double d2=min(solve(l,mid),solve(mid+1,r));
res=d2;
double d=sqrt(d2);
//combine:
//此时左半部分、右半部分内每两点间距离一定<=d
//且左半部分、右半部分内全部按照y的大小重新排序了
//此后合并入条带时,直接O(n)merge即可
//一左一右,且距离小于d,
//一定在条带中,midx-d<=p[k].first<=midx+d
//在这个条带中的点,并且按照y递增存储起来,
//每个点只需要计算后面紧接的6个点距离即可,取min
int i=l,j=mid+1,k=0;
while(i<=mid&&j<=r)
{
if(p[i].second
yyhseu: 2025-04-17 12:52:57
0Lway0: 2024-09-28 20:23:03
Three thousand times in a dream: 2024-09-26 19:04:06
Inv_Growth: 2021-12-24 16:11:40