P6732 题解

· · 题解

Description

给定两个正方形,求一条直线将这两个正方形分到两个平面里。

Solution

暴力枚举 + 分类讨论大屑题

考虑正方形 A 与正方形 B 的位置关系,我们考虑正方形 A,并将他的四条边延长成为四条直线。

然后我们考虑正方形 B 与这四条直线的关系。

注意:下文 挪 即意为答案直线的获取过程,往外 即为往正方形所在的相反方向。

关系 1:与四条直线都没有交点。

分类 1.1:

只需要把直线 AD 往外挪一点点就可以了。

分类 1.2:

只需要把直线 AB 往外挪一点点就可以了。

分类 1.3:

只需要把直线 BC 往外挪一点点就可以了。

分类 1.4:

只需要把直线 CD 往外挪一点点就可以了。

关系 2:与四条直线有一个交点

分类 2.1:

只需要把直线 AD 往外挪一点点就可以了。

分类 2.2:

只需要把直线 AB 往外挪一点点就可以了。

分类 2.3:

只需要把直线 BC 往外挪一点点就可以了。

分类 2.4:

只需要把直线 CD 往外挪一点点就可以了。

关系 3:与四条直线有两个交点

分类 3.1:

只需要把直线 EH 往外挪一点点就可以了。

分类 3.2:

只需要把直线 AD 往外挪一点点就可以了。

分类 3.3:

只需要把直线 EF 往外挪一点点就可以了。

分类 3.4:

只需要把直线 AB 往外挪一点点就可以了。

分类 3.5:

只需要把直线 FG 往外挪一点点就可以了。

分类 3.6:

只需要把直线 BC 往外挪一点点就可以了。

分类 3.7:

只需要把直线 GH 往外挪一点点就可以了。

分类 3.8:

只需要把直线 CD 往外挪一点点就可以了。

与大于 2 条直线相交的情况也能转化到与 2 条直线相交的情况,更多的是将正方形 B 上的某一条边向外挪一点点得到的,具体情况具体判断就可以了。

然后将以上的所有分类讨论模拟成代码就可以了。

然后这道屑题你就做完了