数学距离_计算几何
Anxdada
多读书多看报, 少吃零食多睡觉
展开
-
Wannafly模拟赛4 B题 Distance 【二维最大曼哈顿距离】
传送门 //重点就是那个公式, 可以发现这个公式和曼哈顿距离的公式非常相似, 所以问题就变成了再1e5点中求出最大的曼哈顿距离, 那么这道题和HDU5626几乎一样, 我们对公式|xi−xj|+|yi−yj|,拆绝对值可以得到: 正正: xi−xj+yi−yj=(xi+yi)−(xj+yj) 负负:−xi+xj−yi+yj=(xj+yj)−(xi+yi) 正负: xi−xj−yi+yj=(x原创 2017-10-21 23:35:16 · 746 阅读 · 0 评论 -
洛谷 1142 轰炸 【判断点是否在同一条直线上】
传送门 // 思路: 就是问最多有多少个点在同一条直线上.思路:肯定联想到用斜率或者向量的形式来求呀, 所以我们用向量方便一点, 我们任取两个点作为基准点, 算出一个向量(x1, y1), 然后枚举第三个点, 算第二个点和第三个点的之间的向量, 然后通过判断向量是否平行的方式来判断这三点是否处于同一直线上, 也就是 x1*y2 == x2*y1…. 复杂度O(n^3), 这题数据弱让我卡过去了,原创 2018-03-11 15:53:11 · 794 阅读 · 0 评论 -
CF EDU 41 D 题 Pair Of Lines 【经典几何题】
传送门 题意: 给定n个二维平面上的点, 问这些点是否存在于两条直线上.. (如果还对题意比较迷, 那就再说一种那就是所有点共线时也是YES)思路: 首先, 如果点数<3, 很明显是YES, 所以当点数大于3时我们只需要对前面三个点进行判断就是了, 假设以第一个点和第二个点确定一条直线, 此时我们先把在这条直线上的点先去除, 然后判断剩下的点是否能构成另一条直线即可, 如果不仅能再去判断第一个和第原创 2018-04-08 20:05:33 · 357 阅读 · 0 评论 -
POJ - 2926 Requirements 【k维最大曼哈顿距离】 模板!!!
传送门 题意: 就是给定n个5维点, 问最大曼哈顿距离 思路: 我们考虑两维的情况, |x1 - x2| + |y1 - y2|, 那么我们展开他们的绝对值, 得到四种情况, 我们取两个都取正的情况出来讨论, x1 - x2 + y1 - y2, 然后移项得到(x1 + y1) - (x2 + y2), 很明显, 对于每种情况我们都可以转化为两个相同的形式相减, 然后变动的只是每一个变量前面的...原创 2018-08-23 14:38:48 · 995 阅读 · 0 评论 -
HDU - 6435 Problem J. CSGO 【k维空间求最远曼哈顿距离】 多校第10场
传送门 题意: 有n个主武器, 和m个副武器, 每个武器有一个S, 和k个性能x[i] - x[k], (k<=5) 然后你要选择一把主武器和副武器, 让下面这个式子要尽量的大, 问最大是多少? 思路: 后面那个绝对值是不是很像曼哈顿距离的求解方法, 所以我们想到k维空间求最大曼哈顿距离(这个怎么求参考我写的另一篇博客, 就在这个专栏中, 还有板子), 然后前面那个加法怎么搞? 我们...原创 2018-08-23 15:08:14 · 375 阅读 · 0 评论 -
HDU - 4666 Hyperspace 【动态多维度求最大曼哈顿距离】
传送门 题意: 就是0表示加入一个点, 1表示删除一个点, 后面跟第几个输入的标号. 每次输出当前有的点的最大曼哈顿距离 思路: 多个点求最大曼哈顿距离怎么求就不说了, 主要是要怎么删除, 那么我们就用(1 << k)个multiset来存每个状态的每个值, 然后每次求每个set的最大值减最小值求一个最优即可. 然后删除也直接先find然后再erase即可, 注意存下每一个的点值,...原创 2018-08-23 17:51:11 · 344 阅读 · 0 评论 -
求一个单独的球和n个球的相交体积【模板】
模板如下: 所有的类似题都可以经过这个模板改编 例如: 求两球相交, 两球相并, 等等相关 #define PI acos(-1.0) #define ll long long int const int maxn = 1e2 + 5; using namespace std; struct point { // 这里的点是指球 double x,y,z; point() { ...原创 2019-03-01 20:22:02 · 674 阅读 · 0 评论