SRM466
仮眠も取って万全のコンディションで望んだ。
・・・はずなのに。
250 LotteryCheating
- 全探索しか思い浮かばない。
- 約数が奇数個とか結構良くありそうな気がする。
- 答えが大きくなるような入力はないのでBFSで間に合う、ということではないだろうか。
- ・・・
- 分からないのでBFS書いてから考えよう。
- ・・・
- 書けた。サンプル普通に通った。
- でかいケース入れてみよう。 "1234567890" っとな。
- 死ーん。
- ・・・どうしろというのだろう。
- ・・・
- ・・・
- ・・・
- ・・・
- ・・・
- ・・・
- ・・・?
int divisorCount = 0; for(int i=1;i*i<=n;++i){ if(n%i==0){ if(i*i==n) divisorCount++; // <- ! else divisorCount+=2; // <- ! } }
- 平方数のときだけじゃん!
- うわぁぁぁばかばかばかばかぁぁぁ!
- ごりごりと一番近い平方数までBFSするように書き換える。
- もっかい最大ケースっと。
- 死ーん。
- ・・・
- ・・・BFSする必要ねぇ!違ってる桁の数を数えるだけだよ!
- Edit Distanceとは違うんです!
- ついにできた。もちろん最大ケースも出てきた。
- submit.
- このままだと30%ルールに引っ掛かりますよって?
- BFSと約数カウントの残骸を消した。
- 今度こそsubmit.
500 LotteryPyaterochka
- DP臭い。
- dp[n][s] := n列決まって当たりの数字をs個使った状態の確率、でいけるのかな。
- 書いたけどsample合わないまま終了。
Challenge Phase
- 平方数に一瞬で気付いた人がそんなに多いはずがない!
- みんなBFSしてるに違いない!
- と思ったけどぜんぜんいない・・・。
- 一人いた。迷わず撃墜。
- なんか妙なif文入れている人もいる。これは撃墜できるのでは?
- ・・・自分のが間違ってる!
- 桁数の小さい平方数にするのはいいけど、より大きな桁数の平方数にするのはダメだ・・・。
- '48576' は2が正しいはずなのに 1 ('1048576' = 1024^2) が出てしまうことを確認。
- 0完確定。
- 気を取り直して同じミスしてる人を探そう。
- 残り1分では見つけられませんでしたとさ。
System Test
- 見なくても分かってる。
- けど意外と250で落ちる人が多かったのは意外だった。
- どこが間違ってたんだろう?
Result
- xxx +50 50.00
- 1380 -> 1373
- 私のスキルで飯は食えますか?