ICPC-F-2

はてなダイアリー内で検索すると、ICPC-Fと似たような解法は何人かの人に思いつかれているので、新しい方法を考えてみた。数値解だ(解析解ではない)けど多分完全解答できる…気がする。

  1. 刻み幅 dθ←π/1000 くらいにしてループを回す
    1. F(θ)>F(θ−dθ) かつ F(θ)>F(θ+dθ)、つまりF(θ)が局所解なら解候補に入れる。
  2. 解候補のそれぞれについて
    1. 本当の局所解を取るθをε以上の精度で求め直し、解候補を更新する。
  3. 解候補それぞれについて影の長さを計算し、その中で最大を取るやつを選び抜く。
  4. 最小も同じ。

んで、「解候補を更新」の具体的な形はICPC-Fに書いたのと同じ要領で、

  1. [暫定θ−dθ,暫定θ+dθ]の範囲を100くらいに分割して探索する。
  2. dθ>εなら dθ←刻み幅 にして、更に更新する。

みたいな感じ。概要としては、π/1000 のような非常に狭い範囲に局所解が複数は無いだろうという予想の元やっている。円柱の座標は結構狭いエリアで、かつ整数座標だし。

このアルゴリズムに基づいたコーディングはやってないので、出来上がってから晒します。