![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算几何:叉积
文章平均质量分 79
skajre
这个作者很懒,什么都没留下…
展开
-
POJ 2007 Scrambled Polygon
向量叉积a,b如果为正,那么a在b的逆时针180度内,否则b在a的逆时针180度内,所以只要叉积排序就可以。 尽量使用cmp,重载运算符需要在结构体内。#include #include #include using namespace std; typedef pair Point; int operator ^ (Point p,Point q){ return p.first*q.原创 2016-08-04 21:41:07 · 182 阅读 · 0 评论 -
POJ 1569 Myacm Triangles
这题有两种方法,一种是用叉积来判断点是否是在三角形内或者三角形的边上。一开始脑子抽了,没法线叉积德时候 以下是叉积代码: // // main.cpp // Richard // // Created by 邵金杰 on 16/8/7. // Copyright © 2016年 邵金杰. All rights reserved. // #include #include #inclu原创 2016-08-07 09:21:12 · 226 阅读 · 0 评论 -
POJ 3304 Segments
这题做了我两天,把问题复杂化了,其实只要判断枚举的直线与所有线段有没有交点即可,判断有没有交点用叉积,还有就是题目已经说了,距离小于1e-8算同一点,所以在枚举的时候,如果两个点距离小于1e-8,那么直接跳过这个点,枚举下一个点,因为这两个组成的是点,而不是一个向量。 // // main.cpp // Richard // // Created by 邵金杰 on 16/8/8. //原创 2016-08-08 14:13:16 · 167 阅读 · 0 评论 -
POJ 1039 Pipe
这题做了整整一下午,被折磨得死去活来。 思路是枚举两个端点,然后如果跟管道拐口的线都有交点则可以穿过整个管道,我一开始枚举端点,然后跟拐口的线比,然后如果没有交点,那么就计算x的值,但是这样会有一个问题,那就是如果枚举的两个端点前面有线没有相交,那么他会计算x的值,导致x的值变小了,所以在判断点前的线时,单独判断就好了。 // // main.cpp // Richard // // C原创 2016-08-08 18:09:25 · 148 阅读 · 0 评论 -
POJ 1066 Treasure
2次AC。只需注意相同端点不用算通过一面墙,最后加上1即可。// // main.cpp // Richard // // Created by 邵金杰 on 16/8/8. // Copyright © 2016年 邵金杰. All rights reserved. // #include #include #include using namespace std; #define原创 2016-08-08 20:17:13 · 261 阅读 · 0 评论