P4357 [CQOI2016]K远点对(KDTree)】的更多相关文章

4520: [Cqoi2016]K远点对 Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 1285  Solved: 708[Submit][Status][Discuss] Description 已知平面内 N 个点的坐标,求欧氏距离下的第 K 远点对.   Input 输入文件第一行为用空格隔开的两个整数 N, K.接下来 N 行,每行两个整数 X,Y,表示一个点 的坐标.1 < =  N < =  100000, 1 < =  K…
[BZOJ4520][Cqoi2016]K远点对 Description 已知平面内 N 个点的坐标,求欧氏距离下的第 K 远点对. Input 输入文件第一行为用空格隔开的两个整数 N, K.接下来 N 行,每行两个整数 X,Y,表示一个点的坐标.1 < =  N < =  100000, 1 < =  K < =  100, K < =  N*(N−1)/2 , 0 < =  X, Y < 2^31. Output 输出文件第一行为一个整数,表示第 K 远点对…
4520: [Cqoi2016]K远点对 链接 bzoj 思路 用K-Dtree求点的最远距离. 求的时候顺便维护一个大小为2k的小根堆. 不知道为啥一定会对. 代码 #include <bits/stdc++.h> #define ll long long #define ls (t[u].ch[0]) #define rs (t[u].ch[1]) #define cmin(a,b) (a>b?a=b:a) #define cmax(a,b) (a>b?a:a=b) using…
传送门 又一次产生了KDTree本质就是爆搜的感觉-- 大概就类似于p4169,只不过是从最近点对变成了第\(k\)远点对 我们开一个小根堆,里面放\(k\)个元素,起初全为\(0\),然后每一次都把点对的距离和堆顶比较,如果点对距离大于就弹出堆顶并让这个点对入堆,那么最后堆顶就是答案了 于是我们可以枚举每一个点,然后在KDTree上dfs就行了 然后因为每个点对会被枚举两次,所以小根堆的大小实际上要开\(2*k\) //minamoto #include<bits/stdc++.h> #de…
题意:给定平面中的 \(n\) 个点,求第 \(K\) 远的点对之间的距离,\(n\leq 1e5,K\leq min(100,\frac{n\times (n-1)}{2})\) 题解:kd-tree + priority_queue 用 size 为 \(2\times K\) 的小根堆记录当前 前 \(2\times K\) 远的点对,并以此为在搜索时剪枝的依据. #include<iostream> #include<cstdio> #include<queue>…
Code: #include<bits/stdc++.h> #define ll long long #define maxn 200000 #define inf 100000000000000 #define lson (t[x].ch[0]) #define rson (t[x].ch[1]) #define mid ((l+r)>>1) using namespace std; void debug() { printf("no_problem\n");…
4520: [Cqoi2016]K远点对 Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 490  Solved: 237[Submit][Status][Discuss] Description 已知平面内 N 个点的坐标,求欧氏距离下的第 K 远点对. Input 输入文件第一行为用空格隔开的两个整数 N, K.接下来 N 行,每行两个整数 X,Y,表示一个点 的坐标.1 < =  N < =  100000, 1 < =  K <…
4520: [Cqoi2016]K远点对 Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 638  Solved: 340[Submit][Status][Discuss] Description 已知平面内 N 个点的坐标,求欧氏距离下的第 K 远点对.   Input 输入文件第一行为用空格隔开的两个整数 N, K.接下来 N 行,每行两个整数 X,Y,表示一个点 的坐标.1 < =  N < =  100000, 1 < =  K &…
K远点对 bzoj-4520 Cqoi-2016 题目大意:已知平面内 N 个点的坐标,求欧氏距离下的第 K 远点对. 注释:$1\le n\le 10^5$,$1\le k\le 100$,$k\le n*(n-1)/2$,$0\le x,y<2^{31}$. 想法: KD-Tree还是很暴力的. 我们只需要考虑直接暴力的维护一个个数为$k$的堆即可. 复杂度什么的都滚蛋吧,反正能过. Code: #include <bits/stdc++.h> #define inf 1000000…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description 已知平面内 N 个点的坐标,求欧氏距离下的第 K 远点对.   Input 输入文件第一行为用空格隔开的两个整数 N, K.接下来 N 行,每行两个整数 X,Y,表示一个点 的坐标.1 < =  N < =  100000, 1 &…