解法1. 二分探索
かつ とする. かつ ならば を傾けずに に含むことが可能である.それ以外の場合に, を傾けて に含めることができるかを考える.
まず,下の図のように を底面として角度 だけ傾けるとする.このとき, を含むことができる最小の矩形の横と縦の長さを とすると,
となる. を大きくすると は大きくなり,逆に は小さくなる.また, を小さくすると は小さくなり,逆に は大きくなる.したがって,高さが 以下となる最大の角度 を二分探索で求めた後に, に含まれるかを判定する.このとき, は軸並行に置かれており,高さ ,幅 とする(高さ , 幅 の場合は調べる必要はない).
同様に, の底面を として,高さが 以下となる最大の角度を求めた後に, (高さ , 幅 )に含まれるかを判定する.いずれかの場合で成り立つときに は を含むことができる.
計算時間:
解法2. アドホック
antaさんの解法 にリンクがあった.
Wetzel, John E. "Rectangles in Rectangles." Mathematics Magazine 73, no. 3 (2000): 204-11.
が を含むための必要十分条件は,
かつ ,
または,
かつ
となることである.
計算時間:
アドホックな方法はへぇ〜という感じで証明は読んでいない.幾何が苦手すぎる.
antaさん調べてACしたのか,知っていたのか分からないけど解くの速すぎ.