平面几何
文章平均质量分 51
JK Chen
ACM退役选手,战绩4金6银
展开
-
HDU 6398 Pizza Hub(计算几何 三角形放置)
http://acm.hdu.edu.cn/showproblem.php?pid=6398题意:给一个可旋转的三角形,求一个宽为W的矩形的最小高度,使得这个三角形可以塞进去解析:一定有一个点在边上,所以枚举每个点P做(吉如一jls推荐的旋转平移流)平移坐标系使得P落在原点选择第二个点K,尝试这样放如果不行,就这样放或者这样通过K的旋转,计算得到最后一个点K2的位置这里需要注意由于精度误差acos内的部分可能是−1.0000001-1.0000001−1.0原创 2021-03-27 17:14:41 · 165 阅读 · 0 评论 -
D. Death by Thousand Cuts(立体几何)
http://codeforces.com/gym/102803/problem/D题意:给出一个(0,0,0)(a,b,c)的长方体,有一个Ax+By+Cz+D=0Ax+By+Cz+D=0Ax+By+Cz+D=0的平面,除了D以外的变量都已经给出,与棱交点的个数可能为(3,4,5,6),求D变化时各种答案的概率。解析:枚举长方体每条边,都会得到3个式子,例如:x=0,y=b,z∈[0,c]x=0,y=b,z\in[0,c]x=0,y=b,z∈[0,c],从而带入平面方程得出D的变化范围。例如[l原创 2020-11-07 15:57:32 · 488 阅读 · 0 评论 -
GYM A. Approach (计算几何)
https://codeforces.com/gym/102700/problem/A/* * Author : Jk_Chen * Date : 2020-09-17-17.45.16 */#include<bits/stdc++.h>using namespace std;#define LL long long#define LD long double#define rep(i,a,b) for(int i=(int)(a);i<=(int)(b);i++原创 2020-09-19 13:54:54 · 422 阅读 · 0 评论 -
Triangle Collision(二分 平面几何)
http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1008&cid=881题意:给出一个正三角形和一个质点的位置矢量及速度矢量,点严格在三角形内部。点如果撞到边界会像光路一样镜面反射,速度不变。统计第k次碰撞的时间,保证前k次不会撞到夹角。解析:等同于在这个图中移动以水平的那种线为例。直接二分运动的距离lenlenlen,求出终点在yyy轴上的投影高度:heightheightheight。height/(32L)h原创 2020-07-28 17:47:12 · 1625 阅读 · 1 评论 -
L. Lifeguards(平面几何 点平分成两边)
https://www.jisuanke.com/contest/7190?view=challenges题意:给出n个点,你要找两个点AB,使得存在一半的点到A近,一半的点到B近,如果n是奇数,则可以存在至多一个点到两个点一样近。解析:你要找一条线平方两边的点,然后随便找两个点AB水平对称于这条线即可。显然∣AY∣<∣BY∣,∣AX∣<∣BX∣|AY|<|BY|,|...原创 2020-03-15 11:39:26 · 347 阅读 · 0 评论 -
Crazed Boar(平面几何 象限角度区间)
https://vjudge.net/problem/Kattis-crazedboar题意:给n个圆的位置的半径,原点有个猪给出半径,会往随机方向移动d单位,问不会碰撞的概率。解析:dis表示圆心距离,rsum表示半径和分为4种:直接接触,dis<rsum无影响,d+rsum<dis跑完d后还能接触,d<sqrt(dis*dis-rsum*rsum),角度使...原创 2020-03-08 19:32:22 · 441 阅读 · 1 评论 -
1284E - New Year and Castle Construction(极角排序)
http://codeforces.com/problemset/problem/1284/E题意: 给出n个点(n<=2500),问每个点被多少个四边形严格包含,只需要输出所有的和即可。(4个点组成的不同四边形算一种,保证不出现三点共线)解析: 点被多少个包含,乍一听就是个极角排序问题。以前做过被三角形包含的问题(https://jkchen.blog.csdn.net/article...原创 2020-01-17 15:52:51 · 379 阅读 · 0 评论 -
弧度制区间的表示(D - Dazzling stars)
弧度制区间的表示对于一段弧度区间(小于360度),我们可以用两个数表示,分别是起点的弧度和终点的弧度,例如[−π,0.5π][-\pi,0.5\pi][−π,0.5π]。为了统一化,先确定起点弧度PPP,使得终点弧度Q=P+∠Q=P+\angleQ=P+∠。注意,P∈[0,2π]P\in[0,2\pi]P∈[0,2π],此时加上后Q>2πQ>2\piQ>2π时,同时减去2π2...原创 2019-11-19 21:24:37 · 1339 阅读 · 0 评论 -
K - Colorful Toy(几何 最小圆覆盖 polya计数)
https://vjudge.net/problem/HDU-5080题意: 给出一个二维点集和边集,C种颜色染色,旋转同构,问方案数。解析:假设存在旋转同构,则一定是一个中心对称图像。我们求一个最小圆覆盖,然后用在圆周上的点推测旋转的角度。判断旋转后的点集和边集是否可以和原图的点集和边集重叠即可。代码:#include<bits/stdc++.h>using names...原创 2019-11-10 17:08:08 · 213 阅读 · 0 评论 -
平面几何:半平面交、多边形的核
半平面交简单多边形的每条边都分割平面,所有线都取其一半,交集就是简单多边形的核,也就是可以看到多边形所有区域的区域。求解original link - http://poj.org/problem?id=3335references - https://blog.csdn.net/qq_40861916/article/details/83541403#include <algor...原创 2019-09-27 11:23:32 · 304 阅读 · 0 评论 -
计算几何:平面最近点对
知识模型二维坐标点,求两个点之间的欧式距离的最小值。分治法先将所有点按照xxx坐标排序,此时下标在中间的点设为MMM,下标为midmidmid,当前区间被分为[1,mid][mid+1,n][1,mid][mid+1,n][1,mid][mid+1,n]。先分治左右区间,得到了左右区间内部的最小距离。当前的最小距离为ddd,我们在ddd的基础上继续求左右区间之间的最小距离。显然若左右之...原创 2019-09-27 10:47:43 · 339 阅读 · 0 评论 -
多边形最小外接矩形 旋转卡壳
original link - http://acm.hdu.edu.cn/showproblem.php?pid=5251题意:给出4n个点,求最小面积的外接矩形。解析:因为可以分析出外接矩形一定有一条边与多边形重合,使用可以用旋转卡壳优化时间。枚举每一条边,求出对面最远的点upupup,以及最两边的点l,rl,rl,r。upupup的正确性与三角形面积正比,用叉积求。l,rl,r...原创 2019-08-10 19:06:14 · 1985 阅读 · 0 评论 -
几何模板
#include&amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;lt;cstdio&amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;lt;cmath&amp;amp;amp;amp;amp;gt;#include&a原创 2018-07-20 12:23:35 · 426 阅读 · 0 评论 -
League of Demacia(平面几何)
原题:Gym-101810K 题意: 你能射出一个宽度为z的气功波,杀死所有边界及边界内的敌人,问n个点中是否可以杀死至少m个点解析:对于每个点都作为边界进行判断如果距离原点比较远,那么把气功波的左边界按在这个点上如果比较近,把气功波的下边界按在这个点上我们通过这个边界求出下边界往左方向的单位向量判断一个点是不是在两条左右边界内:点乘是否小于等于Z/2,就是...原创 2018-08-13 11:56:42 · 329 阅读 · 0 评论 -
Journey to Jupiter(三维计算几何)
原题: https://cn.vjudge.net/problem/Gym-101991J题意:有一个正三边形的平面(中心为(0,0,0)),现在告诉你一个顶点A的坐标和平面法向量alpha,边长,问三个点离H(0,0,-h)的距离解析:用O - alpha和O - A叉积,得到一个平行与BC的向量,那么很容易得到OB和OC,BH=OH-OB,CH=OH-OC,就解出来了#include...原创 2018-11-24 18:46:42 · 401 阅读 · 0 评论 -
I. Rise of the Robots(几何 最小圆覆盖)
原题: http://codeforces.com/gym/102006/problem/I题意:现在有一个桌子,半径为R。有一个机器人,半径为r,需要进行以下n次移动:x=x+xi,y=y+yix=x+xi,y=y+yix=x+xi,y=y+yi,当机器人有一部分在桌子外就不行了。求机器人的起始点。解析:相当于求一个圆,将机器人的移动到的所有点都覆盖。这个有一个O(N)的算法,叫最小圆覆...原创 2019-04-14 09:53:56 · 364 阅读 · 0 评论 -
2200专项:C. Mice problem(几何)
原题: http://codeforces.com/problemset/problem/793/C题意:有一个矩形,n个点,告诉每个点的位置和其延x轴y轴移动的速度,问最少多少时间后这个矩形可以框住这n个点(严格)。解析:求出每个点运动到这个矩形内的时间的区间,求一个区间交。如果不存在或是一个点(说明蹭过去了),就说明不行。区间求法:对于内部的点,求出速度方向上x的时间和y的时间取...原创 2019-05-01 20:40:12 · 239 阅读 · 0 评论 -
three points 1(平面几何 三角形)
原题: https://ac.nowcoder.com/acm/contest/885/I题意:给出w,h,a,b,cw,h,a,b,cw,h,a,b,c,求三个点X,Y,ZX,Y,ZX,Y,Z,使得∣XY∣=a,∣XZ∣=b,∣YZ∣=c|XY|=a,|XZ|=b,|YZ|=c∣XY∣=a,∣XZ∣=b,∣YZ∣=c,所有点的x值属于[0,w][0,w][0,w],y值属于[0,h][0,h...原创 2019-08-01 22:04:03 · 348 阅读 · 0 评论 -
Liaoning Ship’s Voyage(计算几何 穿过三角形)
原题: https://cn.vjudge.net/problem/HihoCoder-1633题意:n∗mn*mn∗m地图,有些点不能走,你现在在(1,1)(1,1)(1,1),要走到(n,n)(n,n)(n,n),可以往相邻8个方向走一格。现在有一个三角形不可走区域,你不能穿过(严格有长度落于内部),求最短步数。解析:这道题别的都不难,狗在判断穿过三角形上。怎么判断呢?先判线段...原创 2019-08-07 20:21:25 · 435 阅读 · 0 评论 -
最远对踵点 旋转卡壳
原题: http://poj.org/problem?id=2187题意:求最远点对推荐:https://blog.csdn.net/qq_34921856/article/details/80690822解析:对踵点定义:多边形的两个位于平行切线上的点。我们可以通过旋转卡壳O(n)O(n)O(n)得出所有点对应的对踵点。(先处理凸包)旋转卡壳当我们顺时针枚举点的时候,这些点...原创 2019-08-09 23:02:46 · 631 阅读 · 0 评论 -
凸包最近距离 旋转卡壳
original link - http://poj.org/problem?id=3608题意:给出两个顺时针排序好的凸包,求这两个凸包的最近点对距离。解析:旋转卡壳的另外一个应用。先找出P1P1P1中的最低点,P2P2P2中的最高点,然后旋转(顺时针逆时针随意,要保证两个切线旋转方向相同)。每次P1P1P1的切线旋转到与一条边重合,找出P2P2P2中离这条切线最近的点 1....原创 2019-08-10 10:50:07 · 288 阅读 · 0 评论 -
An Easy Physics Problem(平面几何)
原题: http://acm.hdu.edu.cn/showproblem.php?pid=5572题意:告诉你起点,运动方向,平面上有一个圆,你在圆外面,碰到了反弹,问是否经过终点。解析:若不相交,判是否在射线上相交,求离起点aaa较近的交点III求出aaa对应直线O−IO-IO−I的对称点sasasa判是否在线段a−Ia-Ia−I上或是射线I−saI-saI−sa上判断是否...原创 2019-08-09 23:00:10 · 250 阅读 · 0 评论