![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM 几何
15zhazhahe
打杂小能手/吃/喝/睡/胖/菜/
展开
-
Ural 2067 Friends and Berries 【思维】
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=2067 题意:给你2*1e5个点,定义最好的朋友是指,u和v的距离大于或等于u,v,w相互三条边的距离之和的一半,w为除了u,v任意一个点,u,v不可重复,让你输出有几对最好的朋友,并输出编号 解析:因为三点如果不共线,另外两点不可能大于三角形周长的一半,所以只能是三点共线的情况,而且u,v必须原创 2017-02-16 20:53:44 · 584 阅读 · 0 评论 -
poj3130 How I Mathematician Wonder What You Are!【半平面交】
题目链接:http://poj.org/problem?id=3130 题意:给你一个多边形,让你判断是否是星星,星星的定义是如果有两个点ab属于多边形里面,那么线段ab也属于多边形里面 解析:仔细想想,如果是星星的话,那么也就相当于这个多边形存在核,所以直接套半平面交的模板,记住输入时逆时针的#include <iostream>#include <cstdio>#include <cma原创 2017-04-28 20:27:40 · 505 阅读 · 0 评论 -
poj2451 Uyuw's Concert【半平面交】
题目链接:http://poj.org/problem?id=2451 题意:在一个[0,10000]*[0,10000]的矩形里面做线性规划,让你求线性规划后的区域部分的面积 解析:半平面交求面积,直接套模板#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>原创 2017-04-28 23:51:18 · 488 阅读 · 0 评论 -
poj1113 Wall【凸包】
题目链接:http://poj.org/problem?id=1113 题意:给你一个多边形,让你在距离他x的地方围一圈有弧形的矩形,让你求这个矩形的周长 解析:其实就是凸包边长,加上半径为x的圆的面积#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#in原创 2017-04-18 17:11:42 · 400 阅读 · 0 评论 -
poj2007 Scrambled Polygon【极角排序】
题目链接:http://poj.org/problem?id=2007 题意:好像就是给你个凸包,然后输出极角排序后的结果 解析:极角排个序就好?#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <string>using namespa原创 2017-04-18 17:18:58 · 519 阅读 · 0 评论 -
poj3348 Cows【凸包面积】
题目链接:http://poj.org/problem?id=3348 题意:给你n个点,让你围城一个多边形,也就是求凸包,然后50平方米才能有一头牛,问你这些点构成的多边形能养几头牛 解析:求凸包面积/50,向下取整#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cm原创 2017-04-18 17:27:13 · 382 阅读 · 0 评论 -
poj1228 Grandpa's Estate【凸包稳定性判断】
题目链接:http://poj.org/problem?id=1228 题意:有t组样例,每组有n个点,让你判断这n个点构成的凸包是否稳定 解析:凸包是否稳定就是指,对于某一条边,加多一个点,是否能形成一个更大的凸包,也就是,凸包上的每条边必需至少有三个点,否则就是不稳定的凸包#include <iostream>#include <cstdio>#include <cstring>#in原创 2017-04-19 13:04:55 · 422 阅读 · 0 评论 -
poj1873 The Fortified Forest【枚举+凸包】
题目链接:http://poj.org/problem?id=1873 题意:给你n棵树,让你从这n棵树中,看k棵树,把剩下的数围起来,砍每棵树的价值和每棵树的长度都告诉你,问你能否话最小的价值把剩下的书围起来,如果价值相同,则输出看的树最少的结果。最后需要输出的是,砍了哪几颗树,还剩下都少长度的木材 解析:由于n才15,于是可以考虑枚举砍的情况的所有子集,然后把剩下的树做凸包,然后不断更新答案原创 2017-04-19 13:53:36 · 359 阅读 · 0 评论 -
CodeForces 772B Volatile Kite
题目链接:http://codeforces.com/problemset/problem/772/B 题意:给你一个凸n多边形,如果任意点移动d的距离会使得这个凸n多边形不再是凸n多边形,让你求这个距离d的最小值 解析:如果一个点移动一段距离以后,这个多边形就不再是凸n多边形的话,只有可能这个点和旁边的两个点形成了一条直线,那么这个d就是这个点到旁边两个点形成的直线的最短距离,可是其他点也可以原创 2017-04-19 14:37:52 · 909 阅读 · 0 评论 -
51Nod1298 圆与三角形
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1298 题意:中文题 解析:首先要分情况讨论,三个点都在园内,那么就是不相交,三个点在圆外,那么问题就变成了圆与线段是否相交的问题了,先求点到直线距离,如果点到直线距离是大于半径的,那么这条直线肯定不相交,否则需要判断,圆心在这条直线上投影的位置,如果在线段外原创 2017-05-02 23:30:02 · 476 阅读 · 0 评论 -
hdu2105 Pipe
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2150 题意:给你n条管子,问你他们之间是否有交点,管子由k条线段组成 解析:理解题意乱搞就好,很无语的是,判线段交点的时候,叉乘会爆int!叉乘会爆int!叉乘会爆int,我的代码真是又臭又长O__O “…#include <cmath>#include <algorithm>#include原创 2017-02-28 15:50:54 · 367 阅读 · 0 评论 -
hdu6055 Regular polygon【思维+几何基础】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6055 题意:给你n个坐标为整数的点,让你求有有多少个正多边形 解析:首先这个正多边形一定是正四边形,因为点是整点,接下来需要判断有几个,那么枚举两个点,然后去找这条线段构成的正方形是否存在,找正方形,用坐标旋转即可(90度很特殊,算起来很快)#include <iostream>#include原创 2017-07-27 21:13:27 · 423 阅读 · 0 评论 -
hdu6097 Mindis【圆的反演】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6097 题意:有一个半径为R的圆,圆心在原点,圆里面存在两点P,Q,且PO=QO,现让你在圆上找一个点D,使得PD+QD的值最小,并输出这个值 解析:比赛的时候,三分不够优秀,过不去,赛后看了题解,然后学习了一下圆的反演,发现了一个新的大陆,通过圆的反演,就会发现,这个问题的求解就分成了两种情况,反演原创 2017-08-21 16:02:37 · 470 阅读 · 0 评论 -
Gym - 101490G Manhattan Positioning System
题目链接:https://vjudge.net/problem/Gym-101490G 题意:有n个传感器,每个传感器有三个参数(x,y,d),x,y表示传感器的位置,现在让你建一个观测站,这个观测站需要能检测到所有的传感器,如果传感器能被监测站检测到到的话,一定会满足,传感器到检测站的曼哈顿距离等于d,如果只存在一个满足条件的监测站,就直接输出坐标,如果不存在就输出不确定,如果不存在输出impo原创 2017-09-14 19:44:40 · 640 阅读 · 0 评论 -
poj1039 Pipe
题目链接:http://poj.org/problem?id=1039 题意:给一个宽度为1的管子(不透明,不反射),这时有一段光线过来,问你最远可以射到哪里(直线),输出最远的x坐标,如果可以通过管子,就输出一段话 解析:假设这条光线不碰到任何顶点,那么你可以通过平移这条光线使得他碰到一个顶点,此时要射得远一点,碰到一个顶点后,发现你还可以通过旋转来使得他碰到第二个顶点,那么此时又会远一点,所原创 2017-03-11 20:50:51 · 425 阅读 · 0 评论 -
poj1474 Video Surveillance【半平面交】
题目链接:http://poj.org/problem?id=1474 题意:看图应该就大概看明白了,给你一个多边形,让你判断这个多边形的核是否存在 解析:模板题#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>using namespace std;co原创 2017-04-28 19:32:58 · 390 阅读 · 0 评论 -
poj3335 Rotating Scoreboard【半平面交】
题目链接:http://poj.org/problem?id=3335 题意:就是有个球场,球场的形状是个凸多边形,然后观众是坐在多边形的边上的,问你是否在球场上有个地方可以放一个记分牌,然后所有的观众都可以看得到的 解析:也就是相当于求凸多边形的核,半平面交,裸的模板题#include <cstdio>#include <cstring>#include <algorithm>#incl原创 2017-04-28 19:30:31 · 709 阅读 · 0 评论 -
poj3862 Asteroids【模板题】
题目链接:http://poj.org/problem?id=3862 题意:就是让你求两个多面体的质心到面的距离之和的最小值 解析:模板题,三维凸包质心,然后枚举每一个面算质心到面的距离取最小值#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>#incl原创 2017-04-11 10:49:07 · 554 阅读 · 0 评论 -
hdu1086 You can Solve a Geometry Problem too【排斥实验+跨立实验】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1086 题意:给你n条线段,让你输出n条线段的交点个数,相同的交点也要计算 解析:由于不用求具体交点,所以可以用跨立实验和排斥实验判断是否有交点 排斥实验: 两条线段各自有一个矩形,若两个矩形相交,则这两条线有可能相交 跨立实验: 通过叉乘判断两条线段是否相交,也就是一条线段的两个端点对另一条原创 2017-02-27 21:24:21 · 501 阅读 · 0 评论 -
poj2398 Toy Storage【叉乘】
题目链接:http://poj.org/problem?id=2398 题意:题意和poj 2318惊人的相似,只不过输出有点不一样,输出是指有多少个盒子含有那么多个玩具,比如样例一,含有两个玩具的盒子有两个。还有就是给出的挡板是没有排好序的 解析:把挡板排好序以后,就用叉乘判断玩具的位置即可,输出的时候稍微处理一下就好#include <cmath>#include <algorithm>原创 2017-02-27 19:53:28 · 355 阅读 · 0 评论 -
hdu 1115 Lifting the Stone【多边形重心】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115 题意:给你一个多边形,让你求他的重心 解析:多边形重心公式,即把多边形分成多个三角形,然后是三角形的重心的权重和#include <cmath>#include <algorithm>#include <iostream>#include <cstdio>#include <vecto原创 2017-02-27 22:16:53 · 312 阅读 · 0 评论 -
hdu 2036 改革春风吹满地【多边形面积】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2036 题意:求多边形面积 解析:把多边形拆成三角形,然后叉乘求三角形面积,然后求和#include <cmath>#include <algorithm>#include <iostream>#include <cstdio>#include <vector>#include <cstri原创 2017-02-27 22:29:22 · 286 阅读 · 0 评论 -
hdu 2108 Shape of HDU
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2108 题意:逆时针给你多边形上的点,让你判断这是凸多边形还是凹多边形 解析:就跟凸包的判断一样,直接三个点三个点的叉乘,如果小于零,说明凹多边形#include <cmath>#include <algorithm>#include <iostream>#include <cstdio>#i原创 2017-02-27 22:43:57 · 368 阅读 · 0 评论 -
hdu 1392 Surround the Trees【凸包】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1392 题意:给你n棵树,让你用一根绳子把全部树围起来,要绳子尽可能的短,其实也就是求凸包的周长 解析:凸包裸题,然而我莫名其妙调了两个钟的bug,我还是太菜了#include <cmath>#include <algorithm>#include <iostream>#include <cst原创 2017-02-28 14:28:04 · 422 阅读 · 0 评论 -
poj 3304 Segments
题目链接:http://poj.org/problem?id=3304 题意:给你n条线段,让你找一条线段使得这n条线段在上面的投影至少有一个交点 解析:画个图就知道,如果有一条线段与n条线段全部相交,那么这条线段的垂线就能满足题意要求,把这条直线稍微转一下,总能使得,这条线的端点是n条直线的两个端点,于是只需要枚举每个端点,然后进行判断即可。#include <cmath>#include原创 2017-03-01 22:03:38 · 306 阅读 · 0 评论 -
hdu1411 校庆神秘建筑(求四面体体积)
Problem Description 杭州电子科技大学即将迎来50周年的校庆,作为校庆委员会成员的我被上级要求设计一座神秘的建筑物来迎合校庆,因此我苦思冥想了一个月,终于设计出了一套方案,这座建筑物有点象古老埃及的金字塔,不过这个神秘建筑的根基是三角形的而不是矩形的,从数学的专业角度来讲,它是四面体。当我打算上交我的设计图纸的时候发现,我不知道怎么计算这个神秘建筑的体积(我知道这座建筑的各边的尺原创 2017-02-13 19:42:10 · 527 阅读 · 0 评论 -
【转载】ACM计算几何题目推荐
计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码一片混乱,那么会严重影响做题正确率。4.注意精度控制。5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2)。因为整数不用考虑浮点误差,而且运算比浮点快。一。点,转载 2017-02-27 13:25:23 · 688 阅读 · 0 评论 -
POJ2318 TOYS
题目链接:http://poj.org/problem?id=2318 题意:给你n个挡板,m个点,和一个盒子,挡板把盒子分成了n+1个区域,问你每个区域有多少个点 解析:枚举每个点和邻近的两条线比,在左边的那条线的右边,在右边的那条线的左边,即在这个区域里,我用的是叉乘来判断点在线的哪边#include <cmath>#include <algorithm>#include <iostre原创 2017-02-26 21:03:45 · 332 阅读 · 0 评论 -
poj 1066 Treasure Hunt【叉乘】
题目链接:http://poj.org/problem?id=1066 题意:有一个100x100的正方形,其实也就是有四面墙围成的一个图形,正方形中间有一个点,也就是宝藏所在的位置,除此之外还有内墙,为你从外面到宝藏哪里,最少炸几面墙就可以到达 解析:枚举每一面内墙的起点和终点与宝藏连线,判断和几面内墙相交,除此之外还要枚举正方形的四个端点#include <cstdio>#include原创 2017-03-06 14:04:05 · 279 阅读 · 0 评论 -
poj1696 Space Ant
题目链接:http://poj.org/problem?id=1696 题意:给你n个点的坐标,并给出每个点的序号,让你找一条,不向右拐的最长的路径 解析:每次都找到一个基准点做极角排序,下一次则选则相对于之前那一个点最小极角的点,再接着进行极角排序,这样生成的路径就是所求的#include <cstdio>#include <cstring>#include <algorithm>#in原创 2017-03-06 21:46:35 · 352 阅读 · 0 评论 -
poj1410 Intersection
题目链接:http://poj.org/problem?id=1410 题意:给你一条线段的两个端点坐标,再给你一个矩形的两个顶点坐标,问你这条线段是否和矩形相交,或者这条线段在矩形里面,如果是输出T否则输出F 解析:用线段相交的判断方法判断线段和矩形的四条边是否相交,然后用来类似跨立实验的东西判断线段是否在矩形里面#include <cstdio>#include <cstring>#in原创 2017-03-07 16:24:37 · 311 阅读 · 0 评论 -
Gym - 101243I Land Division
题目链接:https://vjudge.net/problem/Gym-101243I 题意:给你一个有n条边的凸多边形,让你用一条线把他分成m多边形和k多边形,而且要这条线尽可能的段,n边形的顶点坐标按其在图上的顺时针方向给出 解析:对于切这个n多边形总共有四种情况: (1)按两个点切(m+k-2==n) 枚举每个点每次求一次距离,取最小即可 (2)按一个点和一条边切(m+k-3==n)原创 2017-03-10 20:42:39 · 622 阅读 · 0 评论 -
poj 1269 Intersecting Lines
题目链接:http://poj.org/problem?id=1269 题意:给你两条线段的两个端点,让你判断他们的情况,总共有三种情况,共线(NONE),平行(LINE),和相交(Point) 解析:共线和平行直接用斜率和叉乘来判断,剩下的就是求直线交点(推直线交点的时候心态别崩)#include <cmath>#include <algorithm>#include <iostream>原创 2017-03-01 23:21:36 · 292 阅读 · 0 评论