请求加强数据

P7883 平面最近点对(加强加强版)

Elairin176 @ 2022-12-29 11:13:26

#include <iostream>
#include <algorithm>
using namespace std;
struct pos{
    long long x;
    long long y;
}a[400400];
inline long long dis(long long _x1,long long _y1,long long _x2,long long _y2){
    return (_x2-_x1)*(_x2-_x1)+(_y2-_y1)*(_y2-_y1);
}
inline long long min(long long a,long long b){
    return a<b?a:b;
}
bool cmp(pos a,pos b){
    return a.x*a.x+a.y*a.y>b.x*b.x+b.y*b.y;
}
long long ans=1e18;
int n;
int main(void){
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i].x>>a[i].y;
    }
    sort(a,a+n,cmp);
    for(int i=1;i<n;i++){
        for(int j=-100;j<=100;j++){
            if(j==0){
                j++;
            }
            if(i+j<0||i+j>=n){
                if(j>0){
                    break;
                }
                continue;
            }
            ans=min(ans,dis(a[i+j].x,a[i+j].y,a[i].x,a[i].y));
        }
    }
    cout<<ans;
}

以上代码用排序轻松 AC 了本题。
这题的正解是分治,但是依旧卡了过去,所以请求加强数据。


by Elairin176 @ 2022-12-29 11:13:55

@小粉兔 @dottle @览遍千秋


by liangbowen @ 2022-12-29 11:19:04

这玩意卡掉还是有一点点难的,建议给组hack数据。

《平面最近点对(加强加强加强版)》


by Elairin176 @ 2022-12-29 11:24:10

@liangbowen 找lxl


by ran_qwq @ 2023-01-08 14:02:00

@LxlDuLiu


by XSJProgrammer @ 2023-11-05 10:04:06

人类智慧


|