Raid POJ 3714 分治求最近點對

2021-09-27 02:17:17 字數 1022 閱讀 6632

題目大意

有兩個集合,集合點都是n個,求兩個集合中最近的點對是多少

解題思路

就是分治求最近點對的板子題;

用id標一下是哪個集合的點,只有分別是連個集合的才能求最近距離,不然就是inf

不知道為啥,這個題用vector超時了,最後用的結構體(qaq)

#include

#include

#include

#include

#include

using namespace std;

const

int n=

2e5+5;

struct node

node (

long

long x,

long

long y,

int id)};

node e[n*2]

,k[n*2]

;int n;

long

long inf=

1000000000

;int

cmpx

(node a,node b)

intcmpy

(node a,node b)

double

dis(node a,node b)

double

half

(int l,

int r)

sort

(k,k+cnt,cmpy)

;for

(int i=

0; i}return ans;}}

intmain()

for(

int i=

1; i<=n; i++

)sort

(e+1

,e+1

+n*2

,cmpx)

;printf

("%.3f\n"

,half(1

,2*n));}

return0;

}

poj 3714 分治法求最近點對

題意 在乙個平面上給定兩種點a類和b類的座標,求a類中某點a和b類中某點b的最近距離。思路 和同一類點幾乎相同,只需手工設定同一類點間距離為無窮即可 或者每次比較時判斷一下亦可 方法就是經典的分治法 按x排序一分為二,先遞迴判斷兩邊的最近距離,然後判斷中間的 豎帶 上的最近點距。判斷中間豎帶時按照y...

最近點對問題 UVa 10245 (分治)

給定平面上的n個點,求距離最近的兩個點的距離。限制條件 1 n 10000 思路 假設我們把所有點按x座標分成了左右兩半,那麼最近點對的距離就是下面二者的最小值 1 2點p和q同屬於左半邊或右半邊時點對 p,q 的距離 2 2點p和q屬於不同區域時點對 p,q 的距離 首先,對於 1 可以通過遞迴計...

POJ 3714 最近點對問題 分治法

題意 station和agent分別有n 1 n 100000 個點,求不同類別的最近點對距離。題解 這裡講的很好。include include include include include define max a b a b a b define min a b a b a b define...