题解中为什么要加y排序??
查看原帖
题解中为什么要加y排序??
1159426
rome1楼主2024/1/8 21:41

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 为什么??

2024/1/8 21:41
加载中...