AtCoder Beginner Contest 096 の感想
AtCoder Beginner Contest 096
結果
今回のコンテストでは時間内に全て解くことができました。D問題の配点が400だったので、いつもより優しい?感じだったんでしょうか。
各問題に対する考え方
A問題
日付に関する問題で、指定された範囲で月と日が同じになる日数を数えます。
月 日
とすると、 ならば、答えは で、 ならば となります。
B問題
三つの中の最大値に を掛けて残りの数字を足します。
C問題
方眼紙を指定された通りに塗ることができるかという問題でした。 考え方はある'#'の位置を とすると、その位置の上下左右の4方向に'#'が存在すれば、塗ることができます。具体的には、
に対して、, , , の位置のどれかに'#'があれば、塗ることができます。
for文で書くために、列と行を二つ増やして、キャンバスを囲むように配列を作れば、注目するキャンバスのブロック全てに4方向に対応する要素が存在することになります。
D問題
素数に関する問題でした。
問題を見たときに、ゲゲゲと思ったんですが、素数の性質と倍数を考えることで解くことができました。
最初考えたときに、2以外の素数はすべて奇数であるので、2を含む数列から選ばれる5つの素数の和は偶数となります。つまり、合成数となります。
の時はどうするか悩んだんですが、最終的に次の結論に至りました。
2以外の素数について、
が素数となる数を選ぶと、任意の5つの素数の和は次のようになります。
となります。幸い、 の中に、 型の素数の数は、1408個あるので、題意を満たすことができます。
また、 型のような他の素数を選んでも大丈夫だと思います。
感想
初めてD問題まで解くことができたので嬉しかったです。次も頑張りたいと思います。
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
- 作者: 渡部有隆,Ozy(協力),秋葉拓哉(協力)
- 出版社/メーカー: マイナビ
- 発売日: 2015/01/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (7件) を見る
プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?
- 作者: 秋葉拓哉,岩田陽一,北川宜稔
- 出版社/メーカー: マイナビ
- 発売日: 2012/01/28
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 473回
- この商品を含むブログ (36件) を見る