题目
Toy Storage
二维平面中有一个矩形,放入n块隔板,将矩形分成n+1个区域,隔板保证不相交且两端点在矩形的两条横向线段中。形如下图:
给出m个点,求包含t个点的区域数量。
求解思路
可以用叉积判断一个点在线段的左侧还是右侧。
O
A
⃗
×
O
B
⃗
=
∣
O
A
∣
×
∣
O
B
∣
×
sin
θ
vec{OA} times vec{OB}=|OA|times|OB|times sintheta
OA
×OB
=∣OA∣×∣OB∣×sinθ
叉积为负,说明
θ
大
于
π
theta 大于pi
θ大于π
如果
O
A
⃗
×
O
B
⃗
>
0
vec{OA} times vec{OB} >0
OA
×OB
>0 并且
O
C
⃗
×
O
D
⃗
<
0
vec{OC} times vec{OD}<0
OC
×OD
<0,说明点O在区域ABCD内。
代码
#include
#include