Practice 15.07.07 计算几何 - 1

题目在这里

A.POJ 2318

叉积判断点在直线的那一侧

cross(X2-X1,P-X1)  (x1,x2是直线上两点,p是要判断的点)

>0 表示在左侧

<0 表示在右侧 (右手螺旋判定,从X2-X1到P-X1,向外是正)

 

可以看到,对于每个点,确定的区域左边的直线均小于0,右边的直线叉积均大于0,因此可以用二分。

 

B.POJ 2398

跟上一题几乎一模一样,但是这个要排序

 

C.POJ 3304

给一堆线段,问是否有穿过(可以在端点上)这些线段的直线。

 

存在过这些线段的直线

等价于

在这些端电中,存在的两个点构成的直线,它能穿过所有线段。

 

判断直线与线段相交:即线段两个点在直线的两侧(叉积异号)

 

D.POJ 1269

POJ的G++输出记得改成%.2f!!!不要lf,WA在这上了

虽然我也不清楚为什么

 

E.POJ 1556

非常傻逼的题,直接枚举然后按层DP即可。。

记得可以直接从起点到终点。

 

咱也犯了一个傻逼的错(一处i写成n)检查了一个多小时。。。

 

posted @ 2015-07-08 11:29  zhyfzy  阅读(165)  评论(0编辑  收藏  举报