
计算几何
文章平均质量分 77
泪无痕ji
这个作者很懒,什么都没留下…
展开
-
poj1269 简单的计算几何
这是学了计算几何后做的第一道题,刚开始没看清题意以为是求线段的。于是模版往上一套WA,悲剧啊后来好好看了一下题目 又看了一下别人的代码 发现是自己题目没看清 原来是过这两个点的直线 改了之后果断AC啊! 高兴 虽然这是一道很水的题目 但是还是值得高兴需要的知识大家都会 两条直线求交点难道自己不会推 肯定会啊 自己推吧下面是我写的代码 仅供参原创 2013-07-19 20:39:54 · 605 阅读 · 0 评论 -
POJ 2850 Stacking Cylinders 简单计算几何
计算几何的题目 : 一层一层的算 算到最上面的一层时 pre == behind 就退出循环输出涉及到向量的旋转 和三角函数 下面看代码:#include#include#include#define eps 1e-8int cnt, pre, behind;//记录当前这一层的油桶struct Point{ double x,y;原创 2013-08-29 11:49:10 · 786 阅读 · 0 评论 -
POJ 2653 Pick-up sticks 计算几何 线段相交
计算几何的题目 庆幸不用判断共线 题目说了 第一种方法是读入一个处理一个 结果超时了第二种方法是读完了后再处理 AC 同样是暴力求解 但是也得讲究技术啊TLE代码:#include#include#include#include#define Max 100005#define eps 1e-10using namespace s原创 2013-09-08 18:53:28 · 755 阅读 · 0 评论 -
POJ 2398 Toy Storage
挺简单的一道计算几何 只需要知道叉积就可以做了 统计每块区间的toy数 然后toy数相同的统计为s.c 然后从小到大输出就OK了 我的查找方法数据量大的时候效率不高 最好换成二分查找 这样效率就会更高 最后注意 区间总共 n+1个 别漏了最后一个#include#include#include#include#defin原创 2013-09-07 18:57:55 · 563 阅读 · 0 评论 -
POJ 3304 Segments
题意:判断N条线段在某个方向的投影是否有存在公共点。枚举所有点组成的直线 判断是否存在一条直线都与已知线段相交 相交就输出 Yes! 否者输出No!下面是代码#include#include#include#include#define Max 105#define eps 1e-10// 题目规定了精度是 1e-8 我用1e-10using nam原创 2013-09-08 10:52:48 · 773 阅读 · 0 评论 -
POJ 3348 Cows 寻找凸包 凸包面积
非常简单的凸包 找凸包 凸包面积的计算直接上代码原创 2013-09-08 22:29:47 · 829 阅读 · 0 评论 -
POJ 1066 Treasure Hunt 计算几何 枚举线段与直线相交
题意 :从边上出发 找到最少的路径去取得宝藏 就是开最少了门 计算几何 枚举线段与直线相交枚举的线段是所有输入的点 包括墙的四个角的点 直线也一样 最后找出最小的相交次数 减一就是要开的最少门#include#include#include#include#define eps 1e-8#define Max 35using namespac原创 2013-09-12 09:37:35 · 551 阅读 · 0 评论 -
UVA 11178 - Morley's Theorem 简单的计算几何
简单的计算几何题目 求出一个d点 其余的点具有相同的解法 #include#include#include#define eps 1e-10using namespace std;struct Point{ double x,y; Point (double x = 0,double y = 0):x(x),y(y){}};t原创 2013-10-22 21:18:14 · 534 阅读 · 0 评论 -
POJ1584 A Round Peg in a Ground Hole 一道水题wrong了好多次
先判断是不是凸包 然后判断点是否在多边形内 最后判断圆心和各边的距离#include#include#include#define eps 1e-10using namespace std;struct Point{ double x,y; Point (double x = 0,double y = 0):x(x),y(y){}};typedef原创 2013-10-31 17:57:17 · 503 阅读 · 0 评论 -
poj2187 Beauty Contest 凸包+旋转卡壳
凸包+旋转卡壳 = AC;求凸包的时候注意去掉共线的点 刚开始做的时候纯暴力 TLE 后来想几分 剪枝优化 有无从下手最后还是老老实实的凸包+旋转卡壳了#include#include#include#includeusing namespace std;struct Point{ int x,y;};typedef struct Point原创 2013-10-31 21:43:11 · 675 阅读 · 0 评论 -
POJ 1410 Intersection
这道题有个地方比较坑人 也是大家看题没看仔细 题目说了 不一定是按左上和右下给定矩形的(在这WRONG了多次)多么痛的领悟 渣渣般的英语啊注意这点后就没什么难的了#include#include#includeusing namespace std;struct Point{ int x,y; Point (int x = 0,int y原创 2013-11-02 20:27:11 · 515 阅读 · 0 评论 -
UVA 218 - Moth Eradication 计算几何 凸包
凸包水题求凸包 求边长#include#include#include#include#define eps 1e-8using namespace std;struct Point{ double x,y; Point (double x = 0,double y = 0):x(x),y(y){}};typedef Point Vector;原创 2013-11-07 16:27:24 · 644 阅读 · 0 评论 -
POJ 2031 Building a Space Station 简单计算几何 + 最小生成树
如题 :简单计算几何 + 最小生成树求出连个cell的距离 小于零距离为零 否者就是两球心的距离减两球半径因为边较少所以用邻接矩阵存储 最后用一个prim计算最小生成树 答案就出来了注意 :POJ在G++中编译的 输出浮点型都要用f 不能用lf下面看代码:#include#include#include#define eps 1e-8#defi原创 2013-08-29 17:01:16 · 581 阅读 · 0 评论 -
UVA 10652 - Board Wrapping 简单计算几何 凸包
这道题是一个简单的凸包问题关键的一点就是 把每个块的四个顶点都求出来 最后排序求凸包 求的时候涉及到角度旋转 因为计算机上的三角函数都是弧度制的 转换的时候注意一点 自己写的旋转的函数的角度参数是正的 还是负的 也要注意 否者很容易出错 下面看代码 用的是刘汝佳的模版 本人感觉用着不错 比自己写的好多了 计算几何模版需要高度可原创 2013-08-28 17:40:43 · 623 阅读 · 0 评论 -
POJ2138 简单的叉积应用
题意:一个矩形箱子,左上角与右下角的坐标给出,里面有n块板把箱子里的空间分隔成许多个分区,给出这些板在上边的x坐标、下边的x坐标,以及一堆玩具的坐标,求这些分区里的玩具数目。以板的上端点为p0 下端点为p1 玩具的坐标为p2 叉积小于0在当前挡板的左边 num【i】++循环结束 否者在右边 从左到右收下去 最后特判一下就可以了从头收到尾反正不会超时 后来做完了原创 2013-07-21 17:12:00 · 778 阅读 · 0 评论 -
poj1039 计算几何加枚举
这道题把我伤透了 有思路就是不会敲啊 有木有啊 最后看了别人的代码 和自己的思路完全一样啊 感觉还是自己做题做少了 不记得是看谁的代码看过后敲的了 要是看着我的代码和有个人差不多就是我模仿的哪个人了 接着说说题意 打字太累直接copy (无耻了一点)题意:几何计算,给出一个管道(一条从左到右的折线,与它向下移动1后的折线构成),原创 2013-07-22 16:44:07 · 662 阅读 · 0 评论 -
POJ1113 wall 简单凸包
第一次做凸包的题 一遍AC 爽 虽然是水题一道 倒是一遍AC就是爽下面说说题意:求包围这些城堡的城墙的最短长度 显然是一个凸包 注意拐角处是圆弧 所有圆弧架起来正好是一个圆 我这就不证明了 需要看证明的到这个人的博客http://blog.youkuaiyun.com/lyy289065406/article/details/6648622点击打开链接最后原创 2013-07-23 09:41:14 · 685 阅读 · 0 评论 -
uva 579 - ClockHands
#include#include#include#include#define eps 1e-6//精度控制const double t = 180.0000;using namespace std;int main(){ #ifdef LOCAL freopen("in.txt","r",stdin); #endif // LOCAL char原创 2013-07-30 17:16:09 · 423 阅读 · 0 评论 -
POJ 2007 Scrambled Polygon 凸包加排序 水题一道
题意:给出凸包的个个顶点 从(0,0)点开始逆时针输出凸包顶点 分析 :凸包顶点都给你了 计算一遍存下来 然后找到(0,0)点 按照逆时针顺序 对应数组中的点 输出就是了 下面看代码#include#include#includeusing namespace std;struct Point{ int x,y;}s[55],str[55原创 2013-07-24 12:26:41 · 1014 阅读 · 0 评论 -
POJ1228 Grandpa's Estate 计算几何 唯一凸包的确定条件
题意: :给定凸包的几个点 还有几个点未知 也许在边上 也许是顶点 问 已知的这几个点是否确定了一个唯一的凸包 (因为可能是多种凸包) 分析: 两个点确定一条直线 而凸包的一条边至少要三个点才能确定 想想为什么呢 我们用ANdrew算法求凸包的思想是什么 三个点构成一个左转 下面看一个图 如图原创 2013-07-25 15:07:54 · 751 阅读 · 0 评论 -
POJ 1873 The Fortified Forest 凸包+枚举组合
下面是我做这道题时的一些分析 大部分是错的 大家参考参考 我也是写下自己错的好好反思一下以后不犯这种错误题意:这道题找的是花费最小的价值把树木围起来 花多少树木都没事 但是最后至少能剩下一颗 剩下两颗也不一定能用前面的所有树围起来 所以必须枚举到只剩一颗的情况然后问题就来了:1:怎么枚举所有情况?2:怎么确定花费的最小价值?3:枚举到只剩一棵树的情况 则找出原创 2013-08-01 08:19:57 · 641 阅读 · 0 评论 -
uva 10250 - The Other Two Trees
刚开始做这道题的时候 想到的是两点距离公式和点积为零解方程解出两个解但是写出来是一个二元二次方程 不会解。。。于是换成直线方程来做 铁定能解出来 但是忘记考虑了一个问题如果k很大的话 那么就没法做了 会溢出啊不明白为什么k很大会溢出的自己推一推公式就明白了 所以直线方程法也不能用于是只剩最后一种方法了 向量旋转法 因为这种方法以前没用过所以我刚开始原创 2013-08-05 08:53:12 · 447 阅读 · 0 评论 -
uva 10387 - Billiard
题意: 台球从水平长度a垂直长度b的桌子中间以速度v射出 s 秒后撞击 水平挡板n次 垂直挡板m次 然后返回出发点这道题有一个很重要的思想 : 既然速度不变 那么我们就把台球抽象在一个很多的台球桌拼接在一起的平面上的运动 为什么这样想呢 因为入射角等于反射角 然后从一个台球桌的中点到另外一个台球桌的中点找一条满足与垂直相交m次 与水平相交n次的点 找到哪个原创 2013-08-06 09:57:45 · 488 阅读 · 0 评论 -
UVA 375 Inscribed Circles and Isosceles Triangles
计算几何的水题 没什么多说的就是要注意精度 #include#include#include#define eps 0.000001#define PI acos(-1)struct Point{ double x,y;};typedef struct Point point;int main(){ int N; scanf("%d",&N)原创 2013-08-05 17:44:57 · 824 阅读 · 0 评论 -
POJ 1264 UVA 109 简单的计算几何
简单的计算几何题目 注意别重复判断 POJ G++提交的时候不能用%lf 用%f输出#include#include#include#include#define eps 1e-8using namespace std;int T = 0;struct Point{ int x,y; Point (int x = 0,int y = 0原创 2013-11-09 16:30:32 · 651 阅读 · 0 评论