码迷,mamicode.com
首页 > 其他好文 > 详细

【几何】初步

时间:2018-02-28 11:18:41      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:模板   使用   node   遇到   水题   print   tps   方向   nod   

由于几何问题一般是压轴题,对我来说过于复杂,而且这一块是交给队友了的,所以自己都没怎么做过。

为了应对蓝桥杯,和一些简单比赛,还是应该做几个几何水题,以免到时候遇到很水的题我都没有信心去做。

 

首先,向量是基础,可以方便使用加减乘除,可以有很多模板,而且能尽可能避免除法和三角函数,精度高,效率高。

对于向量的点积:p*q*cos<o>  求同向还是异向;求投影;求出投影后用勾股定理求点到直线距离。

对于向量的叉积:p*q*sin<o>   求面积;求顺时针方向还是逆时针方向;判断是否在半平面上。

(叉积表示有向面积,小于180度为正。)

 

POJ2007:Scrambled Polygon  :给定凸多边形的顶点(保证第一个是(0,0)),求按顺序输出顶点(保证无三点共线)。

利用叉积排序,两个向量(顶点减(0,0))的叉积a^b,如果a^b>0,说明b在a的顺时针方向。(如果不是凸多边形不成立,如果三点共线不成立)。

//对于凸多边形,以0为起点的向量,叉积排序。 struct Vector { int x;int y;} node[maxn];
bool cmp(Vector a,Vector b)
{
    return (a.x*b.y-a.y*b.x)>0;
}
sort(node+1,node+cnt,cmp);
for(int i=0;i<cnt;i++) printf("(%d,%d)\n",node[i].x,node[i].y);
 

 

【几何】初步

标签:模板   使用   node   遇到   水题   print   tps   方向   nod   

原文地址:https://www.cnblogs.com/hua-dong/p/8482389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!