れとろのメモ置場

とあるSEのメモ置場

キャディプログラミングコンテスト2021(ABC193)のメモ

キャディプログラミングコンテスト2021に参加しました。

結果

A,B,C問題の3問正解でパフォーマンスが754。D問題が以降がやっぱり解けない。 とはいえD問題もほとんど解けてて、たぶんコーナーケースを漏らしてるのが原因で7ケースがWA。

8割位通るけどなんかのコーナーケースを見逃してるのが原因でWAってのが多いから、頭を柔らかくしてコーナーケースを気付けるようになりたい。

A問題

算数ができれば解ける問題。何%引きって聞かれると戸惑うけど落ちつて計算すれば解ける。

B問題

A分後にはA台在庫が減ってるのでX-Aが1以上の店が考える対象となる。 X-Aが1以上の中から最小のPを求めれば良い。

C問題

1から順番にa^{b}で表せるかどうかを確認するのは面倒だから、a^{b}で表せるものの数を数えてNから引くという方針で解きました。

 2 \leq a,b \leq Nの範囲で全探索って思ったけど、N^{10}なので二重ループで処理しようとするとO(N^{100})くらいだから全然間に合わない。 少し考えて、bが2以上という条件から探索範囲は a^{2} \leq a^{b} \leq N になるから、aは最大でも \sqrt{N} = 10^{5}程度って気づいたので、 2 \leq a \leq \sqrt{N} , 2 \leq b \leq N かつ  a^{b} \leq Nの範囲を二重ループで探索。bの範囲はもう少し小さくできそうだけど、とりあえずAC。

D問題

5枚目のカードとしてあり得るのは高橋くん、青木くんそれぞれ9通り。よって手札は最大で81通りの組み合わせ。 81通りそれぞれのパターンでカードの残り枚数的に可能かどうかを確認しつつ、そのパターンになるカードの選び方を数え上げて、高橋くんが勝つかどうかも確認して、最終的に 高橋くんが勝つ確率を算出。

方針はあってると思うけど、何かのケースを見逃してるみたいでいくつかのテストケースがWA。 後で解説読んで復習しておこう。

(2021/02/28追記)

点数計算間違えてただけだった。単純なミス。10^{c_{i}}だからカードが0枚のときは1になるのに何故か足してなかった。 1版最初に提出したコードの点数計算部分直したらACできた… レーティング的にすごく惜しいことをしてた。