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

C++の練習を兼ねて, AtCoder Beginner Contest 138 の 問題E (E – Strings of Impurity) を解いてみた.

■感想.
1. 複雑なロジックとなったが, なんとか実装できた.
2. TLE版 を 解消して, AC版に到達出来た.
※ TLE版 にあるように, for文内で, vector の 変数宣言することが, 非常に重たい処理であることが分かり, 勉強になった.
3. 苦手なdpの訓練を積めたので良かったと思う.

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

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

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

■参照サイト
AtCoder Beginner Contest 138

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

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

■感想.
1. 深さ優先探索時に, dp更新を行えば良いことに気付いたので, AC版に到達出来た.
2. 深さ優先探索の実装は, AtCoder Beginner Contest 070 (問題D Transit Tree Path) の 解説をベースに実装している.

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

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

■参照サイト
AtCoder Beginner Contest 138

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

C++の練習を兼ねて, AtCoder Beginner Contest 019 の 問題C (C – 高橋くんと魔法の箱) ~ 問題D (D – 高橋くんと木の直径) を解いてみた.

■感想.
1. C問題は, 2で割れる場合に, ひたすら割っていくことに気付けたので, AC版に到達出来た.
2. D問題は, 木の直径についての性質を復習出来たので, 良かったと思う, 但し, 入出力が, 特殊なパターンだったので, 慣れるまで苦労した.

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

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

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

■参照サイト
AtCoder Beginner Contest 019

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

C++の練習を兼ねて, AtCoder Beginner Contest 014 の 問題C (C – AtColor) ~ 問題D (D – 閉路) を解いてみた.

■感想.
1. C問題は, どこかでAtCoder上, 類題を解いたような記憶があるが, 思い出せなかった, 但し, 個人的には, 計算量を減らすためのテクニックが, 非常に面白く感じている.
2. D問題は, 時間かかってしまったが, 正答に辿り着けたので良かったと思う.
※但し, 以下の参照リンクにある Lowest Common Ancestor(LCA) のライブラリを使って対応している.
3. 新しい知識として, Lowest Common Ancestor(LCA) について, 確認出来たのが良かったと思う.

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

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

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

■参照サイト
AtCoder Beginner Contest 014
Lowest Common Ancestor(LCA)

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

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

■感想.
1. 時間かかってしまったが, 正答に辿り着けたので良かったと思う.
2. 時間を見つけて, 引き続き, 復習を進めたいと思う.

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

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

■参照サイト
AtCoder Beginner Contest 137

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

C++の練習を兼ねて, AtCoder Beginner Contest 012 の 問題D (D – バスと避けられない運命) を解いてみた.

■感想.
1. ワーシャル–フロイド法 の 復習が出来たので, 良かったと思う.
2. 解答を見る前に, 解けたので, 及第点は取れたと思う.

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

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

■参照サイト
AtCoder Beginner Contest 012

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

C++の練習を兼ねて, AtCoder Beginner Contest 011 の 問題C (C – 123引き算) ~ 問題D (D – 大ジャンプ) を解いてみた.

■感想.
1. 問題C は, 3 を 優先的に引いていけば解けることに気付けたので, AC版に到達できたと思う.
2. N が 299 の 場合に, YES, NO の いずれのパターンも有り得るので, 面白いと思った.
3. 問題D は, N の 階乗, 4 の N乗 といった 巨大な数の計算を, なるべく平準化する方針で, 実装できたように思う.
4. 解答を見る前に, 解けたので, 及第点は取れたと思う.

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

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

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

■参照サイト
AtCoder Beginner Contest 011

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

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

■感想.
1. 操作を行っても, 和が変化しないこと, 及び, 答えの候補が, 和の約数であることまで, 予想出来たが, 具体的に, その後の処理が見えなかったので, 解答を参考に, 復習した.
2. 解説の方法で, 答えを見つけられることが, 非常に不思議に感じたものの, r の和 が d の倍数 となる性質を使っていることで, なるほどと感心した.

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

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

■参照サイト
AtCoder Beginner Contest 136

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

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

■感想.
1. 解答を見る前に, 解けたので, 及第点取れたと思う.
2. 1グーゴル(巨大な偶数)回後の位置を, 初期位置のマスの文字(及び位置) と 方向転換するマスの位置との関係から, 偶奇に場合分けして把握できたので, 良かったと思う.

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

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

■参照サイト
AtCoder Beginner Contest 136

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

C++の練習を兼ねて, AtCoder Regular Contest 098 の 問題D (D – Xor Sum 2) を解いてみた.

■感想.
1. 解答方針が, 全く見えなかったので, 解答を参照して, 解答を組み立てた.
2. 尺取り法 の 訓練 が 出来たので良かったと思う.
3. 条件を満たす整数の組(l, r) が 見つかった毎に, (r – l + 1) を 加算する必要があることに気付けたのが, 良かったと思う.

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

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

■参照サイト
AtCoder Regular Contest 098