TCO10 Online Round 3
数時間後に演奏会を控えていますが、Round3に出ればTシャツをくれるというので参加してきました。
- -
250. SieveOfEratosthenes
問題:エラトステネスのふるいで2からmaxNumまでの数を処理したときに、最後にふるわれる数は?
- というわけで、やった処理はこんな感じに
- サンプルは通ったので、ホントかよ…と思いつつ提出
- Challengeで3回攻撃されたので、嘘だったか…と思ったけど何故か通った
500. TheChroniclesOfAmber
問題:n人が位置(sX[i], sY[i])から(gX[i], gY[i])に速度1で移動する.任意の時間には誰か1人が別の人の場所にワープできるとすると,全員が目的地に到達するために必要な最小の時間は?
- 移動を始めてからワープする意味は無さそうなので,最初にワープは済ませてしまう
- 貪欲は…ダメだろうなぁ…。n人の位置総入れ替えは出来ないし…。
- 最初にi番目の人がワープしたとすると,i番目の位置は使えなくなる
- けど,この人が頑張れば残りの位置間では任意のワープができるんじゃね…?
- 確証は無いけど、分からなすぎるのでそういう事にする
- 最初に,ワープを使わない場合にかかる時間を調べておく
- ワープを使う場合の最小はどうやって求めれば良いかなぁ…
- 使わない場所を決めれば、時間d以内に全員が目的地に着けるかはO(n^2)で判定可能
- 使わない場所はn通り選べるから、O(n^3)で時間d以内に目的地に着けるか判定可能
- そうだ、二分探索をしよう。
- nが最大50でO(n^3)の判定なら、200回くらい回しても時間は大丈夫だろう。
- というわけで書いたらサンプル通った。ホントかよ…と思いつつ提出。
- Challengeで2回攻撃されたので、嘘だったか…と思ったけど何故か通った
- -
結果:AC / AC / -- ,401.97pt, 40位
レーティング:1938 -> 2097
まさかRound3を突破してしまうとは…。しかも根拠が怪しい解法で。
レーティングが高騰しすぎて怖いですが、見合う実力になれるよう頑張りたいです。