洛谷P1257 平面上的最接近点对】的更多相关文章

n<=10000个点,求欧几里德距离最小的一对点. 经典分治,把这些点按x排序,分成两半,每边分别算答案,答案是左边的最小,右边的最小,左右组起来的最小三者的最小.发现只有左右组的有点难写. 假设左右两半各自的最小中的最小是d,左半边最右的点横坐标是X1,右半边最左的点的横坐标是X2.那么只需要坐标在X1-d到X2+d的范围内的点找更小的距离.如下图. 极端地,x1和x2相等时,x1上的某一个点最多可能和多少点组更小的距离呢? 假如左半边上在x1上有一个大大的点,那么右半边的点只有在圆形区域内才…
P1257 平面上的最接近点对 题目描述 给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的. 输入格式 第一行:n:2≤n≤10000 接下来n行:每行两个实数:x y,表示一个点的行坐标和列坐标,中间用一个空格隔开. 输出格式 仅一行,一个实数,表示最短距离,精确到小数点后面4位. 输入输出样例 输入 #1 3 1 1 1 2 2 2 输出 #1 1.0000 说明/提示 本题爆搜即可 [思路] 分治 + 枚举 话说我也不知道为什么标签上面会有分治…
题目描述 给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的 输入输出格式 输入格式: 第一行:n:2≤n≤200000 接下来n行:每行两个实数:x y,表示一个点的行坐标和列坐标,中间用一个空格隔开. 输出格式: 仅一行,一个实数,表示最短距离,精确到小数点后面4位. 输入输出样例 输入样例#1: 3 1 1 1 2 2 2 输出样例#1: 1.0000 说明 0<=x,y<=10^9 暴力水过... #include<iostream&g…
这个讲的好: https://phoenixzhao.github.io/%E6%B1%82%E6%9C%80%E8%BF%91%E5%AF%B9%E7%9A%84%E4%B8%89%E7%A7%8D%E6%96%B9%E6%B3%95/ 分治法 先空着 看一下这个第三个方法(随机增量哈希,O(n)) 1.千万不要用unordered_map/hash_map!T飞是肯定的:要手写哈希表,所以码量就很大:手写哈希表方法记一下 2.事实上以d为边长画格子,每次遍历相邻的9个格子,常数要比以d/2边…
题目描述 平面上有 \(n\) 个点,第 \(i\) 个点坐标为 \((x_i, y_i)\).连接 \(i, j\) 两点的边权为 \(\sqrt{(x_i - x_j) ^ 2 + (y_i - y_j) ^ 2}\).求最小生成树的边权之和. 输入格式 第一行一个整数 \(n\). 接下来 \(n\) 行,每行输入两个整数 \(x_i, y_i\)​. 输出格式 输出一行一个实数,表示答案. 当你的答案与标准输出的绝对误差或相对误差在 \(10^{-6}\) 内时,就会被视为正确. 输入输…
首先就是一维最接近点的情况... #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define INF 0x3f3f3f3f ]; ; int main(){ int n; while(~scanf("%d",&n)){ ; i<n; i++ ){ scanf("%lf&q…
题目描述 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. 输入输出格式 输入格式: r 输出格式: 整点个数 输入输出样例 输入样例#1: 4 输出样例#1: 4 说明 n<=2000 000 000 暴力很好打,但是这1000%是数论题.不就是推推式子嘛. 由于圆这个东西很棒棒,我们只需要考虑某一象限内的情况就行了.为了方便解题,我们取第一象限作研究对象. 因为x^2+y^2=n^2,变换一下,y^2=n^2-x^2=(n-x)(n+x). 设gcd(n-x,n+x…
https://www.luogu.org/problem/show?pid=2800 题目背景 小D在X星买完了想要的东西,在飞往下一个目的地的途中,正无聊的他转头看了看身边的小A,发现小A正在玩<仙剑> 题目描述 可是小A很奇怪,他一直在锁妖塔的周围转来转去,可是就是不进去,于是小D问他:”你在干什么?怎么不上去?”小A说:”我在想怎么从锁妖塔外面爬上去”(倒…) 锁妖塔的建造很特别,塔总共有n层,但是高度却不相同,这造成了小A爬过每层的时间也不同.小A会用仙术,每用一次可以让他向上跳一层…
上白泽慧音 题目链接 强联通分量模板题,Tarjan求强联通分量,记录大小即可 #include<iostream> #include<cstring> #include<cstdio> #define N 5010 #define M 100010 int n,m,Head[N],Enum,stack[N],top,ms; int dfn[N],cnt,low[N],belong[N],size[N],num; bool ins[N]; struct NODE{ in…
P1952 火星上的加法运算_NOI导刊2009提高(3) 题目描述 最近欢欢看到一本有关火星的书籍,其中她被一个加法运算所困惑,由于她的运算水平有限.她想向你求助,作为一位优秀的程序员,你当然不会拒绝. 输入输出格式 输入格式: 第一行先愉入一个运算的进制N(2<=N<=36),接下来两行为需要进行运算的字符,其中每个字符串的长度不超过200位,其为N进制的数.其中包括0-9及a-z(代表10-35). 输出格式: 在N进制下它们的和 输入输出样例 输入样例#1: 复制 20 1234567…