GCJ Round1A-Cを振り返っておく

Round1落ちしてしまった…全体を振り返るに,しょんぼりなミスがいつも以上に多かったと思う.
やはりあの呪いか.

ミスを繰り返さないように,メモっておこう.

Round1A

なんかGCJがお祭りな感じだなーとか思いながら,今回通れないと次回でるの大変だなーとか思いながら参加.

A. Rotates

やるだけ,なんだけど,回転と幅詰めに手間取った.
前も手間取って,意外とでるからライブラリ入りしとこうかな.特にミスなし.

B. Make it Smooth

DPなのはすぐにわかるけど,上手く考えられない.small通そうとしたけど,なんか場合分けができない.
場合分けじゃなくて再帰全探索が良かった.これにこだわったのがこのラウンドの1番の失敗.

C. Number Game

本番中ろくに読まなかった.イクナイ.読んでみたら,smallはmapとかでキャッシュつければ通りそうってことはわかった.

結果

Aのみで1000ちょっと.全体としては戦略的ミスだった.一回目だしいいかっていう油断もあった.
でも全部とけなきゃ.

Round1B

一日二回か.しんどい.って思いながら参加.本番前に呪いのキーワードを吐いてしまった.これが転落の始まりだったのだろうか.

A. File Fix-It

やるだけ.日本人最速だったらしい.っていうのを聞いて,考え方が守りに入った.small通せばいっかなって.

B. Picking Up Chicks

とりあえずsmallを通そうとして,queueでも使ってswap全部試そうと思った.が,答え合わない…
本番後検証したら,queue中のbreakに何故かswapがK回超えたらやめるになってた.Kは最低限の鶏の数だよ…
ひどい凡ミス
途中皆結構点数あげてて,これはlarge通さないと勝てないと思って方針を変えた(たぶん遅かったけど).
冷静に考えると,largeも貪欲にやっていけばいけそうってすぐ気づいた.けど,なんでか通らない.
本番後に少し条件が抜けてたことが発覚.2,3行足りなかった.

C. Your Rank is Pure

読めない!ていうか素数の話なに??

本番後に説明聞いたら,とりあえずDPはすぐわかって,理解できたらとけてたかなーと思う.
ググル様は英語できない人に用ないんだなぁ.

結果

1700ぐらい.Bを冷静に通したかった.もしくは読みたかった.

Round1B

A. Rope Intranet

やるだけ.簡単すぎてなんども確認して1分ほどロスした.

B. Load Testing

読めないんですよ.まだ読めてない.皆結構解いてたので,簡単なんだろうなーと思って1時間以上読んだけどよくわからなかった.ゲシュタルト崩壊した.
数字の大きさから,なんとなーくBinary SearchでLargeをとくのかなーって思った.そうだったらしい.読めない.

[追記]バイナリサーチと言うかアドホック.意味を教えてもらって,最初トップダウンに考えていてイミフだったけど,ボトムアップに考えたらすぐわかった.でも,説明を日本語で聞いてもなかなか理解できなかったから本番中は無理ぽ.

C. Making Chess Boards

Bが読めないので,とりあえずCに来た.Cを読んだらLargeは知らないけどsmallはやるだけっぽかったのでガリガリ書き始める.
30分程でだいたいかけて,40分ぐらいで提出.small合わない…
本番後に少し条件が抜けていたことがわかった.数行訂正すれば直ってた.気づきにくいといえば気づきにくい.

結果

1300ぐらい.英語が読めなかったことと,Cでミスに気づかなかったのが原因かな.
でもCをn^5で出してたかというと怪しい.その根性はなかったなァ…通るなんて.

総括

今回は凡ミスと言うか条件抜けメインの英語ムズイだった.これはこれでちょっと珍しいのでやっぱりあの呪(うわなにをするやめ
自分は英文読むのは苦手ではないけど,数学的?な話になると苦手になる(今回はfactor).これは慣れが足りないと思うので,
gcjの過去問でも読んでなれよう.

条件のデバッグは結構本質的なので気づきにくい.今回はコードはしっかり書けている自信があったので,やはりifの中とかをしっかり
考えなきゃ気付かなかったと思う.普段でいう凡ミスとはまたちょっと違う感じで.

Round2に進んだ方はTシャツを見せてください!