The 46th World Championship ICPC W問題:Riddle of the Sphinx
問題. Riddle of the Sphinx
3種類の生物がいる。それぞれの種類の足の数を答えよ。
問題を解くためにスフィンクスに「」という形式の質問を 5 回行う。これは 3 種類の生物がそれぞれ 匹いるときの足の本数の合計を訊ねる質問である。この質問に対してスフィンクスは と答えるが、5回の質問のうち多くても 1 回は嘘をつく場合がある。
制約: 、
解法.
回目()の質問を とし、その返答を とする。また、答えである 3 種類の生物の足の本数をそれぞれ とする。
初めの 4 回の質問を次のように行う。
もし、 ならばこの 4 回の質問で嘘は付かれていないので、答えは となる。
それ以外 の場合を考える。すなわち、4 回の質問の内ちょうど 1 回嘘を付かれている場合である。ここまでの質問で答えの候補 は次の 4 通りに絞られる。
① :1回目の質問への答えが嘘の場合(2, 3, 4 回目の質問への答えは本当)
② :2 回目の質問への答えが嘘の場合(1, 3, 4 回目の質問への答えは本当)
③ :3回目の質問への答えが嘘の場合(1, 2, 4 回目の質問への答えは本当)
④ :4回目の質問への答えが嘘の場合(1, 2, 3 回目の質問への答えは本当)
残りの 1 回の質問でこれら 4 つの答えの候補から 1 つに絞りたい。ただし、最後の質問は必ず正しいことが上の仮定から保証されている。質問「」で上の 4 つの返答がすべて異なるようにしたい。すなわち、
①'
②'
③'
④'
としたときに、 となる を見つけたい。この条件を であることに注意して書き下すと、
- より、
- より、
- より、
- より、
- より、
- より、
となる。したがって、 を満たす を 5 回目の質問として訊ねる。
候補はたくさんあるので実装では として質問をした。①', ②', ③', ④' の に を代入して計算した が に等しい (①, ②, ③, ④ のどれか)が答えとなる。
計算時間:
コンテスト中なら真面目に 5 回目の質問の証明をしないで、 ①, ②, ③, ④ が一意になるような を全探索するかも(そのような が存在することは答えがあるというメタ読みで)。
この問題難しくて時間かかった。8分で通しているチームがあるらして…すごい。