链接:http://acm.hdu.edu.cn/showproblem.php?pid=4946 Area of Mushroom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1896    Accepted Submission(s): 452 Problem Description Teacher Mai has a kingd…
题目链接 题意:给定n个人,每个人有一个速度v方向任意.如果平面中存在一个点只有某个人到达的时间最短(即没有人比这个人到的时间更短或相同),那么我们定义这个店归这个人管辖,现在问这些人中哪些人的管辖范围是无限的,无限的输出1,否则输出0. 题解:这道题错了好多遍TOT,首先我们从速度角度考虑,速度不是最大值的人管辖范围一定有限为0,所以我们只需要考虑速度最大值的人即可,如果速度最大值为0要特判一下.所以我们对于这些人先求一个凸包,再来研究这个凸包: 这个题有很多坑,首先在凸包边上的人也要考虑进去…
题意是在二维平面上 给定n个人 每一个人的坐标和移动速度v 若对于某个点,仅仅有 x 能最先到达(即没有人能比x先到这个点或者同一时候到这个点) 则这个点称作被x占有 若有人能占有无穷大的面积 则输出1 .否则输出0 思路: 1.把全部点按速度排个序.然后把不是最大速度的点去掉 剩下的点才有可能是占有无穷大的面积 2.给速度最大的点做个凸包,则仅仅有在凸包上的点才有可能占有无穷大 若一个位置有多个人,则这几个人都是不能占有无穷大的. 凸包上边里共线的点是要保留的,, 附赠一波数据 #includ…
题意: 在二维平面上,给定n个人 每个人的坐标和移动速度v 若对于某个点,只有 x 能最先到达(即没有人能比x先到这个点或者同时到这个点) 则这个点称作被x占有,若有人能占有无穷大的面积 则输出1 ,否则输出0 思路: 1.把所有点按速度排个序,然后把不是最大速度的点去掉 剩下的点才有可能是占有无穷大的面积 2.给速度最大的点做个凸包,则只有在凸包上的点才有可能占有无穷大 若一个位置有多个人,则这几个人都是不能占有无穷大的. 凸包上边里共线的点是要保留的. #易错点: 1.凸包边上要保留共线的点…
题目链接:hdu 4946 题意:一大神有N个学生,各个都是小神,大神有个二次元空间,每一个小神都有一个初始坐标,如今大神把这些空间分给徒弟们,规则是假设这个地方有一个人比谁都先到这,那么这个地方就是他的,问谁的地盘面积是无穷大的. 思路:由于空间是无限大的,所以仅仅要速度最大就有可能有无限的地盘,重合的点不能严格的比对方快,也不符合规定,然后求速度最大的点围城的凸包,凡是在凸包上的点且不重合的,地盘都是无穷大. 比赛的时候,不会凸包的,现找的模板,不了解性能,不知道计算凸包不能传重合的点进去结…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4946 题目大意:在一个平面上有n个点p1,p2,p3,p4....pn,每个点可以以v的速度在平面上移动,对于平面上任意一点,假设有唯一一个点pi从初始的位置到这个点的时间最短,那么就说平面上的这个点是属于pi这点管辖的.现在要你判断pi管辖的范围是不是无穷大的,如果是输出1,否则输出0: 首先大致的方法就是构造凸包,不过要遵循一下前提: 一定是只考虑速度最大的点,然后,如果两个点所在的位置与速度都…
链接:pid=4946">http://acm.hdu.edu.cn/showproblem.php?pid=4946 题意:有n个人.在位置(xi,yi),速度是vi,假设对于某个点一个人比全部其它的都能先到那个点,那这个点就被这个人承包了.输出有多少人承包的(鱼塘)面积是无穷大. 思路:找出速度最大值,仅仅有速度是这个最大值的人才有可能承包无穷大的面积(由于快速者早晚会追上低速者). 每两个人相比,他们能承包的位置的界线是他们坐标的中垂线,能够证明的是,在组成凸包时,在凸包里的人.承包…
思路: 只有速度最大才有可能为1,速度不是最大肯定为0,那么就是 只需要操作那些速度最大的点,这些点求一个凸包,判断一下是不是在凸包边上即可. 有几个需要注意的地方: 1.最大速度如果为0   那么肯定所有都不行. 2.如果最大速度有重点那么 也都不行. 3.有些求凸包模板求出来的凸包可能有重点,要去重再求. #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #inc…
大致题意: 平面上有n个人,给你每个人的坐标和一个速度v,如果某个人比其他所有人都先到达某点,则该点就被这个人掌控,求谁掌控者无限大的面积. 首先 速度最大的人,抛弃其他人,速度小的人必定无法得到无限的面积. 然后 所有速度最大的人建凸包,则凸包上节点的人和凸包边上的人必定有无限的面积,凸包内部的人必定没有,因为速度都相等. ps:建凸包时不能直接将叉积的<=该为<来构建边上有点的凸包,因为有重点. 最后将所有得到的人中有重合的全部去除,最后留下的人掌控的面积无限 #include<cs…
Given a triangle field and a rope of a certain length (Figure-1), you are required to use the rope to enclose a region within the field and make the region as large as possible. Input The input has several sets of test data. Each set is one line cont…
给你n个点,具有速度,一个位置如果有其他点能够先到,则不能继续访问,求出里面这些点哪些点是能够无限移动的. 首先我们考虑到,一个速度小的和一个速度大的,速度小的必定只有固定他周围的一定区域是它先到的,而其他地方都是速度大的先到. 再来如果有相同速度的两点,前连线的中垂线则是它们先到的界限,如果一个点在多边形的内部,那么它必定会被与其他点连线的中垂线所包围. 因此,只要选出最大速度的点,在里面找凸包即可.但是还有很多细节,比如点重合的情况...如果速度一样的点重合,该点也不能无限移动,但是求凸包时…
Area of Mushroom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2390    Accepted Submission(s): 578 Problem Description Teacher Mai has a kingdom with the infinite area. He has n students guard…
http://acm.hdu.edu.cn/showproblem.php?pid=4946 给你n个点的坐标和速度,如果一个点能够到达无穷远处,且花费的时间是最少的,则此点输出1,否则输出0. 每个点向外都是以圆的形式向外拓展的,所以只有速度最大的才能到达无穷远处,但是并不是所有速度为最大的点都能到到无穷远处. 将速度最大的所有点做一个凸包,凸包内的点肯定不能到达无穷远处,凸包上的点才满足条件. 于是找最大速度点构成的凸包,标记输出 注意由于有重点的存在,一定要标记重点并在求出之后再将其删去,…
Area Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 225    Accepted Submission(s): 77 Problem Description 电子科大清水河校区是电子科大大力兴建的未来主校区,于07年秋正式迎接学生入住,目前有07.08级本科生及部分研究生在此校区学习.生活.清水河校区位于成都高新西区的中部地带,占…
题目大意: 一些点在一张无穷图上面,每个点可以控制一些区域,这个区域满足这个点到达这个区域的时间严格小于其他点.求哪些点能够控制无穷面积的区域. 题目思路: 速度小的控制范围一定有限. 速度最大当且仅当在凸包上才能够控制无穷区域.可以通过,任意两个点中垂线为界,左右各控制一半,判断出凸包内的点仅能控制有限区域. 特判: 速度最大且在同一个点上的点均不能控制无穷区域,但是要加入凸包计算. 速度最大为0不能控制无穷区域. 对于共线凸包(Graham),(代码中有解释) 均不能存在重点!可用map判重…
1.三角形的所有端点 2.过所有三角形的端点对所有圆做切线,得到所有切点. 3.做任意两圆的外公切线,得到所有切点. 对上述所有点求凸包,标记每个点是三角形上的点还是某个圆上的点. 求完凸包后,因为所有点都是按逆时针(或顺时针)排好序的,如果相邻两点在同一圆上,那么求这段圆弧的距离,否则求这段直线的距离.最后得到所有周长. #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath…
Surround the Trees Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10803    Accepted Submission(s): 4187 Problem Description There are a lot of trees in an area. A peasant wants to buy a rope t…
toLeftTest toLeftTest是判断一个点是否在有向直线左侧的算法. 当点s位于向量pq左侧时,toLeftTest返回true.当点s位于向量pq右侧时,toLeftTest返回false. 具体的算法可以根据三角形的有符号面积来计算 对应上图中的 2倍三角形面积area 的公式为 当pqs的方向为逆时针时,面积area为正:当pqs的方向为顺时针时,面积area为负值.当area为0时,说明点s在直线pq上 下面的算法有效避免了除法的出现,减少了计算误差. bool toLeft…
1069: [SCOI2007]最大土地面积 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 2707  Solved: 1053[Submit][Status][Discuss] Description 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大. Input 第1行一个正整数N,接下来N行,每行2个数x,y,表示该点的横坐标和纵坐标. Output 最大的多边形面积,答案精确到…
Higher Math Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2219    Accepted Submission(s): 1219 Problem Description You are building a house. You’d prefer if all the walls have a precise right…
2014-07-30 http://acm.hdu.edu.cn/showproblem.php?pid=2528解题思路: 求多边形被一条直线分成两部分的面积分别是多少.因为题目给的直线一定能把多边形分成两部分,所以就不用考虑多边形是否与直线相交.直接求问题. 将多边形的每一条边与直线判断是否相交.若相交,就从这点开始计算面积,直到判断到下一个边与直线相交的点.这之间的面积求出来为area2. area1为多边形的总面积.多边形被直线分成的另外一部分面积 = area1 - area2 有一个…
http://acm.hdu.edu.cn/showproblem.php?pid=2892 解题思路: 求多边形与圆的相交的面积是多少. 以圆心为顶点,将多边形划分为n个三角形. 接下来就求出每个三角形与圆相交的面积. 因为三角形的一个点是圆心,所以三角形的另外两个点与圆的情况有以下几种: (1)两点都在圆里,三角形与圆相交的面积=三角形的面积. (2)一个点在圆外,一个点在圆里,三角形与圆相交的面积=小三角形的面积+扇形面积 (3)两点都在圆外,又分为几种情况: 1.两点构成的线段与圆相交的…
Problem B Board Wrapping Input: standard input Output: standard output Time Limit: 2 seconds The small sawmill in Mission, British Columbia, has developed a brand new way of packaging boards for drying. By fixating the boards in special moulds, the b…
Teacher Mai has a kingdom with the infinite area. He has n students guarding the kingdom. The i-th student stands at the position (x i,y i), and his walking speed is v i. If a point can be reached by a student, and the time this student walking to th…
概念 凸包(Convex Hull)是一个计算几何(图形学)中的概念.用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边型,它能包含点集中所有点的.严谨的定义和相关概念参见维基百科:凸包. 也被称为:Graham/Andrew Scan 算法.在二维欧几里得空间中,凸包可想象为一条刚好包着所有点的橡皮圈. 问题 给定平面上的二维点集,求解其凸包. 过程 1. 在所有点中选取y坐标最小的一点H,当作基点.如果存在多个点的y坐标都为最小值,则选取x坐标最小的一点.坐标相…
Area Time Limit: 1000MS Memory Limit: 10000K Description You are going to compute the area of a special kind of polygon. One vertex of the polygon is the origin of the orthogonal coordinate system. From this vertex, you may go step by step to the fol…
题目链接   题意:给出n个矩形,求能覆盖所有矩形的最小的矩形的面积. 题解:对所有点求凸包,然后旋转卡壳,对没一条边求该边的最左最右和最上的三个点. 利用叉积面积求高,利用点积的性质求最左右点和长度,更新面积最小值即可. #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #define MAX 50010 using namespace std; struct P…
Beautiful Now Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1876    Accepted Submission(s): 707 Problem Description Anton has a positive integer n, however, it quite looks like a mess, so he…
Problem Description There are a lot of trees in an area. A peasant wants to buy a rope to surround all these trees. So at first he must know the minimal required length of the rope. However, he does not know how to calculate it. Can you help him? The…
凸包算法是计算几何中的最经典问题之一了.给定一个点集,计算其凸包.凸包是什么就不罗嗦了 本文给出了<计算几何——算法与应用>中一书所列凸包算法的Python实现和Matlab实现,并给出了一个Matlab动画演示程序. 啊,实现谁都会实现啦╮(╯▽╰)╭,但是演示就不一定那么好做了. 算法CONVEXHULL(P)  输入:平面点集P  输出:由CH(P)的所有顶点沿顺时针方向组成的一个列表 1.   根据x-坐标,对所有点进行排序,得到序列p1, …, pn 2.   在Lupper中加入p…