season's quarterly

数学/物理/プログラミング

PCK2020本選参加記[EngelBæts!]

11/14に開催されたパソコン甲子園2020本選に参加しました。
予選参加記はこちらです。
season1618.hatenablog.jp

本選当日


今回はオンライン開催ということで、本選競技中の選手の写真を撮ることになっていたのですが、開始30分程で撮ることになっていました。

問題1 ケーキの価格

差が税率2%分かつpは50の倍数なので50で割る。

問題2 角度の変換

3600で割ったり、3600で割ったものに3600をかけて引いて60で割ったり、60で割った余りを取ったりするとできます。

問題3 ホットケーキ

焼く回数に差ができないように焼くと最小の回数にできる。例えばホットケーキA,B,C,D,Eがあったとする。一回目にA,B,Cを焼いて、二回目はまだ焼いていないD,Eを優先してD,E,Aを焼く、三回目はまだ一回しか焼かれていないB,C,D,Eを優先してB,C,Dを焼くというようにする。よって\lceil 2N/3 \rceilを出力すれば良い。ただしN = 1の時だけ2。これを忘れて1ペナ。

問題4 最小のMAW

辞書順最小であるためにはS中の最も小さい文字だけを使うことが必要。この文字をcとする。Tの長さをS中のcの最大の連続する個数より1多くすれば、その他の条件も満たすことができる。

問題5 スロットマシン

列ごとに0-9の個数を数えて、掛けて足せば良い。
ここまでで34分。去年は競技時間いっぱいかけて5問正解だったのでかなり余裕です。この時点では11位だったらしい。まあ高難度解けないとだめだよね。

問題6 はんぶんこ

尺取りでやるんだろうなあとか思いつつ実装しきれる自信がなかったので飛ばします。

問題7 旅館の客室番号

8進数にして引き算して10進数に直せば良い。100桁なので多倍長整数で足し算(引き算)と掛け算の筆算を実装するのが大変だった。が、どうしても通らないので15:30頃に問題6に戻る。

椅子を温める

実装ができたので提出するが通らない。6も7も解法は分かってるのに通らないのできつかった。何も分からないので問題7で愚直解法と比較してみたが違う答えが出てこない。16:20頃にとりあえず怪しいところを変更して提出するとAC。草。問題8に移る気にはならなかったので、問題6のコードのデバッグに取り掛かる。面積の式が間違ってたので喜々として提出するけどWA。結局原因が掴めないまま競技終了。

結果

まあ去年より解けたから良いんではないでしょうか。
f:id:season1618:20201114201029p:plain
f:id:season1618:20201114201017p:plain


全体の解答状況
f:id:season1618:20201114201021p:plain
やはり問題6の正答率が悪いですね。正答数、正答率共に問題8と逆転してるので、問題8をもっと考えれば良かったかも。

感想

ライブラリは今回も使いませんでした。今回は後輩が3問も通してて凄かった。