RT
sort(mpt+1,mpt+k+1,cmp2);
for(int i=1;i<=k;i++)
{
for(int j=i+1;j<=k&&a[mpt[j]].y-a[mpt[i]].y<=minn;j++)
{
if(minn>=dis(a[mpt[i]],a[mpt[j]]))
minn=dis(a[mpt[i]],a[mpt[j]]);
}
}
排序但还是遍历了所有啊
我认为上下两个代码是等价的
for(int i=1;i<=k;i++)
{
for(int j=i+1;j<=k&&fabs(a[mpt[j]].y-a[mpt[i]].y)<=minn;j++)
{
if(minn>=dis(a[mpt[i]],a[mpt[j]]))
minn=dis(a[mpt[i]],a[mpt[j]]);
}
}
加上fabs应该就可以了
但是上面100下面81 为什么??