向量 \(\overrightarrow{p}\) 可表示为 \((x, y)\),加为 \((x_1+x_2, y_1+y_2)\),减为 \((x_1-x_2, y_1-y_2)\),叉乘为 \(x_1 \times y_2-x_2 \times y_1\),点乘为 \(x_1 \times x_2+y_1 \times y_2\)
P.S. 叉乘的几何意义为有向平行四边形面积 (除 \(2\) 可计算三角形面积),同时可快速判断平面上点与直线的位置关系 (相等说明在直线上)
平面多边形面积公式 (叉乘):\(S = \frac{1}{2}|\overrightarrow{p_n} \times \overrightarrow{p_1} + \sum_{i=2}^{n} (\overrightarrow{p_{i-1}} \times \overrightarrow{p_{i}})|\)
二次函数求积分:\(\int_{l}^{r} f(x)dx = \frac{r-l}{6} (f(l)+f(r)+4f(\frac{l+r}{2})\)
自适应辛普森法 (求函数积分):
- 朴素想法是对于 \([l, r]\),若直接拟合为二次函数的误差可接受,则直接拟合;反之分治为 \([l, mid]\) 与 \([mid, r]\)
- 优化方法为判断拟合为二次函数带来的偏移,若可接受则拟合
db simpson(db l, db r){return (r-l)/6.0*(f(l)+f(r)+4.0*f((l+r)/2.0));
}db integral(db l, db r, db ans, db eps, int dep){db m = (l+r)/2;db fl=simpson(l, m), fr=simpson(m, r);if (dep > 12 && fabs(fl+fr-ans) <= eps*15){ // 可根据时限调高 12return fl+fr;}return integral(l, m, fl, eps/2, dep+1)+integral(m, r, fr, eps/2, dep+1);
}