C++ の動作確認をしてみた(107)

C++の練習を兼ねて, AtCoder Beginner Contest 007 の 問題D (D – 禁止された数字) を解いてみた.

■感想.
1. 解答を見る前に, 正解に辿り着けたので, 時間はかかったものの, 及第点は取れたと思う.
2. 禁止された数字の個数を, 直接数えるのが大変そうだったので, 禁止されてない文字を数えてから, 逆算する方針で解いた.

本家のサイトAtCoder Beginner Contest 007 解説をご覧下さい.

■C++版プログラム(問題D/AC版).

■参照サイト
AtCoder Beginner Contest 007

C++ の動作確認をしてみた(106)

C++の練習を兼ねて, AtCoder Beginner Contest 099 の 問題D (D – Worst Case) を解いてみた.

■感想.
1. 解答方針が見えなかったので, 解説を参照して確認した.
2. 復習出来てない問題が, まだまだ, たくさんあるので, 今後も, 少しずつ進めていきたいと思う.

本家のサイトARC094/ABC093解説をご覧下さい.

■C++版プログラム(問題D/AC版).

■参照サイト
AtCoder Beginner Contest 093

C++ の動作確認をしてみた(105)

C++の練習を兼ねて, AtCoder Beginner Contest 099 の 問題D (D – Good Grid) を解いてみた.

■感想.
1. 解説を見る前に解けたので, 及第点は, 取れたように思う.
2. グリッドを, 対角線方向に眺めて, i + j = 0 ~ (2 × N – 2) の範囲で, 集計する方針で対応したが, 解説見たところ, もっと簡潔に解けることが示されていたので, 大変勉強になった.

本家のサイトABC099解説をご覧下さい.

■C++版プログラム(問題D/AC版).

■参照サイト
AtCoder Beginner Contest 099

C++ の動作確認をしてみた(104)

C++の練習を兼ねて, AtCoder Beginner Contest 123 の 問題D (D – Cake 123) を解いてみた.

■感想.
1. 解答の方針が, 全く見えなかったので, 解説を読んだうえで, 実装した.
2. キューに追加されたことが無いかどうかの判定をするための実装が, 結構苦労した(set で 対応しようとしたが, 上手く行かなかった, 他に良い方法が思いつかず, 結局, map で, 対応した).
3. map の key に, prefix(接頭語) を 追加したが, おそらく, 不要だと思う.

本家のサイトAtCoder Beginner Contest 123 解説をご覧下さい.

■C++版プログラム(問題D/AC版).

■参照サイト
AtCoder Beginner Contest 123

C++ の動作確認をしてみた(103)

C++の練習を兼ねて, AtCoder Beginner Contest 118 の 問題D (D – Match Matching) を解いてみた.

■感想.
1. 解答の方針が, 全く見えなかったので, 解説を読んだうえで, 実装した.
2. 複雑怪奇に感じたものの, 苦手な DP の訓練となったと思う.

本家のサイトABC 118解説をご覧下さい.

■C++版プログラム(問題D/AC版).

■参照サイト
AtCoder Beginner Contest 118

C++ の動作確認をしてみた(102)

C++の練習を兼ねて, AtCoder Grand Contest 036 の 問題A (A – Triangle) を解いてみた.

■感想.
1. 基本的には, 座標平面上で三角形の面積を計算する公式 を ベースに実装した.
2. とりあえず, 解説見る前に解けたので, 及第点は, 取れたように思う.

本家のサイトAGC036解説をご覧下さい.

■C++版プログラム(問題A/AC版).

■参照サイト
AtCoder Grand Contest 036
座標平面上で三角形の面積を計算する公式

C++ の動作確認をしてみた(101)

C++の練習を兼ねて, AtCoder Beginner Contest 119 の 問題D (D – Lazy Faith) を解いてみた.

■感想.
1. (if文 の 条件指定で, インデックス範囲を混乱して, 苦労したが)lower_bound の 使い方を復習できたので, 良かったと思う.
2. とりあえず, 解説見る前に解けたので, 及第点は, 取れたように思う.

本家のサイトABC 119解説をご覧下さい.

■C++版プログラム(問題D/AC版).

■参照サイト
AtCoder Beginner Contest 119

C++ の動作確認をしてみた(100)

C++の練習を兼ねて, AtCoder Beginner Contest 134 の 問題E (E – Sequence Decomposing) を解いてみた.

■感想.
1. 問題E は, 解答方針が見えなかったので, 解説を参照して確認した.
2. LIS(Longest increase subsequence) の アルゴリズム を 使う必要があるとの指摘があったが, “広義”単調減少 と記載されていたので, プログラム上, 部分的に修正した.

本家のサイトABC 134解説をご覧下さい.

■C++版プログラム(問題E/AC版).

■参照サイト
AtCoder Beginner Contest 134

C++ の動作確認をしてみた(99)

C++の練習を兼ねて, AtCoder Beginner Contest 051 の 問題D (D – Candidates of No Shortest Paths) を解いてみた.

■感想.
1. バグに気付くまでに時間かかってしまった(※M辺 の 入力情報を, N辺 に 誤記していた, debug中に, 漸く気付いた).
2. ほとんど馴染みのないダイクストラ法の訓練を出来たので良かったと思う.
3. 解説を見る前に, 何とか解答出来たので, とりあえず良かったと思う.

本家のサイトABC 051解説をご覧下さい.

■C++版プログラム(問題D/AC版).

■参照サイト
AtCoder Beginner Contest 051
atcoder_testcases ABC051

C++ の動作確認をしてみた(98)

C++の練習を兼ねて, AtCoder Beginner Contest 128 の 問題F (F – Frog Jump) を解いてみた.

■感想.
1. 解答の方針が, 全く見えなかったので, 解説を読んだうえで, 実装した.
2. 但し, 実装上, 部分的に, いくつも推測(ex. 同じ座標を二度通らない, kの上限など)しているため, 題意と, ズレている可能性があると思われる.
3. テストケースの自作が困難だったため 実装後, ネット上のatcoder_testcases ABC128で, テストケースをいくつか確認後, 提出した.
4. 余談としては, 前問 である 問題E (E – Roadwork) は, 知識不足(イベントソート) かつ (解説を読んだものの)解答不能だったため, 時間を見つけて, 類題など探して, 理解を深めていく必要があると思っている.

本家のサイトABC 128解説をご覧下さい.

■C++版プログラム(問題F/AC版).

■参照サイト
AtCoder Beginner Contest 128
atcoder_testcases ABC128