水色プログラミング

競プロで解いた問題の記録,ゲーム制作の進捗など...

AtCoder Beginner Contest 096 Virtual (90min)

  • 結果

AtCoder Virtual Contest

全完(18:39)。意外と簡単目な問題だったのですんなり解けた。前に問題を少し見たことがあったのも影響していると思う。

f:id:babcs2035:20180613195507p:plainf:id:babcs2035:20180613195459p:plain

 

  • A 問題

  • 問題

A - Day of Takahashi

a 月 b 日までの月数と日数が等しくなる日の数を求める問題。

 

  • 解法

a <= b ならば a 、そうでなければ a - 1 が答え。

 

  • 解答

Submission #2662693 - AtCoder Beginner Contest 096

f:id:babcs2035:20180613184209p:plain

 

  • B 問題

  • 問題

B - Maximum Sum

A, B, C の3つをどれかを2倍し、これを K 回繰り返すときの和の最大値を求める問題。

 

  • 解法

K 回ごとに一番大きい数を2倍するのが最適なので、A, B, C のうち一番大きい数を2倍し続けるのが最適。

 

  • 解答

Submission #2662704 - AtCoder Beginner Contest 096

f:id:babcs2035:20180613200214p:plain

 

  • C 問題

  •  問題

C - Grid Repainting 2

隣接する2マスを同時に塗ることしかできないとき、入力で与えられるようにマスを塗れるか、という問題。

 

  • 解法

全ての黒マスに対し隣接する黒マスがあるかどうかすべて調べればよい。O(HW)。

 

  • 解答

Submission #2662730 - AtCoder Beginner Contest 096

f:id:babcs2035:20180613200531p:plain

 

  • D 問題

  • 問題

D - Five, Five Everywhere

任意の5個の合計が合成数になる N 個の互いに異なる素数を求める問題。

 

  • 解法

m 個の和が m で割り切れる <=> 各数を m で割った余りの和が m で割り切れる

 なので、N 個5で割ったときの余りが1の素数を出力すればよい。O(N * sqrtN)。

 

  • 解答

Submission #2662771 - AtCoder Beginner Contest 096

f:id:babcs2035:20180613201205p:plain