随笔- 1046
文章- 115
评论- 19
阅读-
36万
随笔分类 - 计算几何
基础练习 矩形面积交 (分类讨论)
摘要:基础练习 矩形面积交 时间限制:1.0s 内存限制:512.0MB 时间限制:1.0s 内存限制:512.0MB 问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。 输入格式 输入仅包含两行,每行描述一个矩
阅读全文
BZOJ 1007 [HNOI2008]水平可见直线 (栈)
摘要:1007: [HNOI2008]水平可见直线 Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的.例如,对于直线:L1:y=x; L2:y=-x; L3:y=0则L1和L2是可见的,
阅读全文
HDU 4562 守护雅典娜 (计算几何+DP)
摘要:守护雅典娜 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 740 Accepted Submission(s): 250 Problem Des
阅读全文
HDU 5120 Intersection (圆的面积交)
摘要:题意:给定两个圆环,求两个圆环的面积交。 析:很容易知道,圆环面积交就是,大圆与大圆面积交 - 大圆和小圆面积交 - 小圆和大圆面积交 + 小圆和小圆面积交。 代码如下:
阅读全文
UVALive 7749 Convex Contour (计算几何)
摘要:题意:给定上正方形,圆,三角形,让你求出包围它的最短的路径。 析:首先,如果是这种情况 三角形 三角形 三角形 正方形(圆) 三角形 三角形 三角形 。。这一种就是直接从左边直接连到正方形(圆),也就是相切,剩下的情况都是直接是直线,只要处理一下边界就好。 代码如下:
阅读全文
HDU 6127 Hard challenge (极角扫描)
摘要:题意:给定 n 个点,和权值,他们两两相连,每条边的权值就是他们两个点权值的乘积,任意两点之间的直线不经过原点,让你从原点划一条直线,使得经过的直线的权值和最大。 析:直接进行极角扫描,从水平,然后旋转180度,就可以计算出一个最大值,因为题目说了任意直线不是经过原点的,所以就简单了很多,每次碰到的
阅读全文
HDU 6097 Mindis (计算几何)
摘要:题意:给一个圆C和圆心O,P、Q是圆上或圆内到圆心距离相等的两个点,在圆上取一点D,求|PD| + |QD|的最小值 析:首先这个题是可以用三分过的,不过也太,。。。。 官方题解: 很不幸不总是中垂线上的点取到最小值,考虑点在圆上的极端情况。 做P点关于圆的反演点P',OPD与ODP'相似,相似比是
阅读全文
POJ 2002 Squares (哈希)
摘要:题意:给定 n 个点,问有能组成多少个正方形。 析:通过直接桥梁两个顶点,然后再算另外两个,再通过哈希进行查找另外两个,这里我先是用的map,竟然卡过了3400ms多,后来改成哗哈希,900ms,哈希我也是用STL中的容器来写的,list,先枚举的那两个点是相邻的,然后再通过旋转90度,去计算另外两
阅读全文
CodeForces 703C Chris and Road (简单几何)
摘要:题意:有一个n边形的汽车向以速度v向x轴负方向移动,给出零时时其n个点的坐标。并且有一个人在(0,0)点,可以以最大速度u通过w宽的马路,到达(0,w)点。现在要求人不能碰到汽车,人可以自己调节速度。问人到达马路对面的最小时间是多少? 析:这个题是一个简单的分类讨论,很明显只有两种情况,第一种,直接
阅读全文
POJ 1127 Jack Straws (线段相交)
摘要:题意:给定一堆线段,然后有询问,问这两个线段是不是相交,并且如果间接相交也可以。 析:可以用并查集和线段相交来做,也可以用Floyd来做,相交就是一个模板题。 代码如下:
阅读全文
SPOJ CIRU The area of the union of circles (计算几何)
摘要:题意:求 m 个圆的并的面积。 析:就是一个板子题,还有要注意圆的半径为0的情况。 代码如下:
阅读全文
Gym 100531J Joy of Flight (几何)
摘要:题意:你从开始坐标到末尾坐标,要经过 k 秒,然后给你每秒的风向,和飞机的最大速度,问能不能从开始到末尾。 析:首先这个风向是不确定的,所以我们先排除风向的影响,然后算出,静风是的最小速度,如果这都大于最大速度,肯定是不可能,如果可能, 再计算出每秒走的单位长度,然后再模拟整个过程。 代码如下:
阅读全文
UVa 12714 Two Points Revisited (水题,计算几何)
摘要:题意:给定一条线段,让你求一条线段与已知线段垂直,并且所有线段的坐标的点的坐标都不大于给定的坐标的最大值且不能为负数。 析:没啥好说的,随便找一条就好。 代码如下:
阅读全文
UVa 1643 Angle and Squares (计算几何)
摘要:题意:有n个正方形和一个角(均在第一象限中),使这些正方形与这个角构成封闭的阴影区域,求阴影区域面积的最大值。 析:很容易知道只有所有的正方形的对角形在一条直线时,是最大的,然后根据数学关系,就容易得到答案。 代码如下:
阅读全文
UVa 10213 How Many Pieces of Land ? (计算几何+大数)
摘要:题意:一块圆形土地,在圆周上选n个点,然后两两连线,问把这块土地分成多少块? 析:这个题用的是欧拉公式,在平面图中,V-E+F=2,其中V是顶点数,E是边数,F是面数。对于这个题只要计算V和E就好。 我们从一个顶点开始枚举对角线,这条线左边有 i 个点,那么右边有 n-i-2 个点,那么两边的连线在
阅读全文
UVa 1641 ASCII Area (计算几何,水题)
摘要:题意:给定一个矩阵,里面有一个多边形,求多边形的面积。 析:因为是在格子里,并且这个多边形是很规则的,所以所有格子不是全属于多边形就是全不属于,或者一半,并且我们可以根据"/"和“\”的数目来知道,如果是奇数,那么就是属于, 偶数就是不属于。 代码如下:
阅读全文
UVaLive 6693 Flow Game (计算几何,线段相交)
摘要:题意:给个棋盘,你可以在棋盘的边缘处放2个蓝色棋子2个黄色棋子,问连接2组同色棋子的最小代价,如果线路交叉,输-1。 析:交叉么,可以把它们看成是两条线段,然后如果相交就是不行的,但是有几种特殊情况,比如都在同一行或同一列,要特殊考虑这种情况。 1122,1212,2211,2121,1221,21
阅读全文
HDU 3668 Volume (数学,积分)
摘要:题意:求图中交叉圆柱体的体积! 析:大体思路很明确,把两个圆柱的体积加起来 减去中间公共部分的即可!第一步首先得想到公共部分是一个怎样的图形。这个在高数下册例题中有讲到! 中间实线部分就是第一卦限内的图形,显然一个二重积分就可以搞定: 这种情况比较简单点,适合于2*R <= h 的时候! 如果2*R
阅读全文
UVaLive 6859 Points (几何,凸包)
摘要:题意:给定 n 个点,让你用最长的周长把它们严格包围起来,边长只能用小格子边长或者是小格子对角线。 析:先把每个点的上下左右都放到一个集合中,然后求出一个凸包,然后先边长转成题目的方式,也好转两个点的最小的*根号2加上两者差*1. 代码如下:
阅读全文
HDU 3365 New Ground (计算几何)
摘要:题意:给定点A[0~n-1]和B[0],B[1],A[0]、A[1]映射到B[0]、B[1],求出其余点的映射B[2]~B[n-1]。 析:运用复数类,关键是用模板复数类,一直编译不过,我明明能编译过,交上就不过,只能写一个复数了。。。 代码如下:
阅读全文