各到着先 について、その棒に到着する出発位置の 始まりの番号を とし、最初に とする。円を直線に展開すると、 に の倍数を加えることで同じ到着先の別の位置を表現できる。
となる2つの添字が存在するとき、 から を引き、 に を加える。この操作では変位の総和は変わらず、必要な交差回数も増えない。最大値と最小値の差が 以下になるまで繰り返す。
とする。 に対して2本の経路の最小交差回数は次の式の値である。
ここで は条件 が真のとき 、偽のとき を表す。すべての について足し合わせる。負の数の除算では、 方向への切り捨てではなく数学的な床関数を用いる必要がある。
毎回最大値と最小値を選べば、同じ添字を2回調整する必要はなく、調整回数は 回である。各調整に 時間、すべての組の計算に 時間かかる。よって時間計算量は 、追加空間計算量は である。
Solution written by GPT6