矩形相交:对称投影公式¶
出题人配套讲解中的投影方法。Codex(GPT-6):完整实现、退化边界与维数证明。它与顶边法并列,支持完整数据;程序为 alternative-projection.cpp。
将图形表示为 \([l_A,r_A]\times[b_A,t_A]\) 与 \([l_B,r_B]\times[b_B,t_B]\) . 令
\[
L=\max(l_A,l_B),\quad R=\min(r_A,r_B)
\]
\[
D=\max(b_A,b_B),\quad U=\min(t_A,t_B)
\]
两者的交集就是 \([L,R]\times[D,U]\) . 若 \(L>R\) 或 \(D>U\) ,某个区间为空,整个交集为空;否则非空。这由“点在两个图形中”等价于“两个坐标分别在对应的两个闭区间中”直接得到。
非空时,\(L<R\) 表示横向有正长度,\(D<U\) 表示纵向有正长度;两个真条件给出面积,一个给出线段,零个给出点。布尔相交任务只需区分空与非空,分类任务使用上述维数。零长度区间不会被误判为空。
每组仅需常数次比较,时间 \(O(1)\) 、额外空间 \(O(1)\) ,总时间 \(O(T+1)\) . 公式对两个输入图形完全对称,适合直接表达交集;与顶边法相比,没有时间或空间复杂度的改进。输入范围内无须浮点运算。