0.はじめに
最近コンスタントにDまでは行けるようになっていて、慣れてきたのかなと思いつつ参戦。
今回も、A~Dはすんなり解け、1時間残しでEに取り組めました。
ただ、Eはクリアできず結局4問ACで終わり。
レートは+29の787まであがり、再入緑が見えてきました。
1.A - Shuffled Equation
問題文に従いABCの関係性3種類(A+B=C、A+C=B、B+C=A)それぞれが
条件に合うか判断。
合うものがあればYesなければNoを出力して終了。
https://atcoder.jp/contests/abc392/submissions/62503991
2.B - Who is Missing?
リストAをセット化し、1~Nまでの数字がセットにあるかを判断。
ないものを回答用リストに追加していき
最後に回答用リストの長さと、内容を出力して終了。
https://atcoder.jp/contests/abc392/submissions/62511569
3.C - Bib
ややこしいと言えばややこしいけど、まぁ言われた通り実装すれば
なんてことはない問題。
【実装】
1.回答用リストansを用意(実装を簡単にするため、0~NのN+1個の項目を持つ、index0は使わない)
ans[i]には、i が書かれたゼッケンを着けている人が見つめている人の着けているゼッケンにかかれている数がセットされる
2.人iを先頭から調べていく。
-1.ans[Q[i]]にQ[P[i]-1]をセットする。
3.最後にansをindex1から、N個出力して終了
https://atcoder.jp/contests/abc392/submissions/62520983
4.D - Doubles
苦手意識のある確率の問題。
とりあえず、メモ帳に例題1のケースをメモって理解。
Nが、100以下なので、とりあえず、サイコロの全組み合わせを試すことは可能と判断。
事前処理として、サイコロごとの値数(K)と値毎の目の数を持つ辞書の列を用意
入力例の1の場合
1個目のサイコロ”3 1 2 3”の場合、(3,{1:1,2:1,3:1})
2個目のサイコロ”4 1 2 2 1”の場合、(4,{1:2,2:2})
3個目のサイコロ”6 1 2 3 4 5 6”の場合、(6,{1:1,2:1,3:1,4:1,5:1,6:1})
上記列毎の全組み合わせに対し、同じ値となる率を求める。
一つ目のサイコロのKをK1、値毎の目の数を持つ辞書をC1とし
二つ目のサイコロのKをK2、値毎の目の数を持つ辞書をC2とする
2つのサイコロ毎の同じ値発生率は
分母はK1×K2
分子は、C1の各値がC2にあった場合、C1の値数×C2の値数の合計
上記で求めた全ケースの発生率のうち一番大きな値を最後に出力して終了
https://atcoder.jp/contests/abc392/submissions/62533307
以上