![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算几何
文章平均质量分 71
qhpeklh5959
哈工程小白,两个月前正式投入算法学习
展开
-
HDU1086 You can Solve a Geometry Problem too
微微发亮的传送计算几何的基础题,给定一些线段,判断有多少个交点,同时遇到很多条直线相交的时候可以重复计算,非常良心了。我搬出了我的线段类和点类,写的那叫一个复杂,不过好在还是A了,如果不许重复计算的话我们就得求交点了……#include #include #include #include #include using namespace std;const doubl原创 2013-09-17 20:41:48 · 545 阅读 · 0 评论 -
HDU1007 Quoit Design
题目链接题意不用多说,求平面最近点对的,很简单……我又是一大堆的板子往上面一放,代码就比较长最近点对,就是分治的方法来求,一半一半地分下去,同时找到x最近的一些点,然后合并的时候枚举比刚刚求到的距离范围内的点,然后求y,整个复杂度应该湿nlogn级别的……还是该理解理解然后脱离板子。#include #include #include #include #include原创 2013-09-18 14:36:55 · 568 阅读 · 0 评论 -
HDU2823 The widest road
点击打开链接旋转卡壳求凸包最近距离,可能是没判断凸包交点什么的,一直RE……先留着当旋转卡壳板子……#include #include #include #include #include #include #include using namespace std;const double eps = 1e-8;int dblcmp(double x){ if (f原创 2013-10-06 16:26:05 · 740 阅读 · 0 评论 -
LA4986 Dome of Circus
微微发亮的传送门最开始比较傻,一直认为是乱搞,结果乱搞了一大通,最后输出的结果我自己的不认识后来有了个比较神的思想,那就是三分搜索,首先,我们可以知道,圆锥的体积是(r*r*h*pi)/3,那么这里面的不定量就是r和h,也就是说我们需要求得就是r*r*h的最小值,而r和h又是相关的,也就是说我们知道了一个量就可以通过圆锥轴截面的那个三角形得知另一个量,同时这个函数是一个凸性函数,已经满足了原创 2013-10-09 20:54:31 · 839 阅读 · 1 评论 -
HDU4752 Polygon
点击打开链接题目大意是给定一个多边形,一条抛物线,求抛物线在多边形里面部分的长度的总和。基本思想:对抛物线和多边形求交点,求出来交点之后判断那几段在多边形内,然后对那几段进行曲线积分,然后加和即可。我的最初思想是求出来所有的交点之后,然后判断两个交点的中点是不是在多边形内,然后确定区间之后直接曲线积分,但是如果这么做的话,如果多边形的边在抛物线上面交错相交,时间复杂度为O(nn),稳稳原创 2013-09-27 06:46:19 · 1055 阅读 · 1 评论 -
Changsha F Curve in Circle
怎么说呢,这道题也是受了适牛的指导,看解题报告看了三四天才能A掉……转向适牛解题报告最初的思想是定小圆转大圆,然后通过球长度求出来我们想要的轨迹方程,对于多边形的每一条边,我们求出来每一个端点的边界值,套用辛普森积分法……然后和适牛说了我的想法,对此适牛直接把这个问题转化成了三角形内部的问题,化为计较坐标,用神一般的三角函数直接予以解决……code还是仿写适牛……代码功力太渣……T原创 2013-09-28 18:19:40 · 619 阅读 · 0 评论 -
HDU4353 Finding Mine
微微发亮的传送门去年某一场多校联合赛的题,题意就是给了N个黑点,M个红点,用黑点围成一个多边形,使得它的面积比上它里面的红点的比值最小。乍一看,好屌的样子,但是实际上我们想一想,假设我们找到了这么一个多边形,而且是边数大于3的,那么这个多边形肯定能分成好几个三角形,这些三角形面积和红点个数的比值有可能是一样的,一样的话,求出来这个三角形和费大劲儿求出来多边形是完全一样的,那么我们只需要考虑原创 2013-09-16 21:09:21 · 657 阅读 · 0 评论 -
长沙现场赛C题
题目大意给定两个同心圆,外面的圆表示的是一个区域,里面的圆是一个围墙,现在在圆形区域外某个点,以某个方向的速度发射一个硬币,使硬币做匀速直线运动,已知硬币撞上圆形围墙时会发生无能量损失的反弹,反弹的方式为镜面反射,硬币的任何部分在圆形区域内的时间。解题思路首先,对于我们所求的问题,求时间的话,只需要知道两个量,一个是硬币在圆形区域中经历的长度,另一个是速度,速度已经给定,而且明确说了没原创 2013-11-18 01:35:28 · 1193 阅读 · 5 评论 -
UVA1342That Nice Euler Circuit
万恶的几何……题目大意就是给两条购,这两条狗在不同的道路中奔跑,现在给了这两条道路,已知两条狗同时出发,同时到终点,问它们在奔跑的过程中某时刻的最大距离和最小距离之差的最大值。首先,考虑两条道路都是线段,假设一条狗是静止的,这样我们就可以算出来另一条狗与这条狗的相对位置,求最大值就行了,那么当它是一个复杂的折线的时候,我们就可以一段一段的按照刚才的想法来考虑,唯一需要注意的就是拐点的处理。原创 2013-10-21 21:22:07 · 609 阅读 · 0 评论