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

C++の練習を兼ねて, AtCoder Regular Contest 133 の 問題A (Erase by Value) ~ 問題B (Dividing Subsequence) を解いてみた.

■感想.
1. 問題Bは, 方針が見えなかったので, 解説を参考に, AC版に到達できた.
2. LIS(Longest increase subsequence) の 応用版(追加条件) を, 確認することができたので, 非常に良かったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

本家のサイト AtCoder Regular Contest 133 解説 の 各リンク を ご覧下さい.

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

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

■参照サイト
AtCoder Regular Contest 133
060 – Chimera

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

C++の練習を兼ねて, AtCoder Beginner Contest 037 の 問題D (経路) を解いてみた.

■感想.
1. 問題Dは, 方針が見えなかったので, 解説を参考に, AC版に到達できた.
2. 本問は, メモ化再帰の例題として, 学習した内容である.
相変わらず, メモ化再帰の本質が見えてないため, 理解が進むまでは, 本問を, 典型的な例題として, いったん丸暗記の方針とした.
とはいえ, メモ化再帰は, 以下の構成要素(ロジック)が含まれていると, とりあえず理解した.
① 第一段階 … メモ化が終わっているか確認する作業, 再帰処理の終了条件として使用する.
② 第二段階 … 再帰処理の実装, 本問では, “経路数” を知りたいので, 経路数 を 集計する実装が必要.
③ 第三段階 … メモ化が終わってないため, メモ化の作業を追加, なお, 本問では, メモ化の対象は, “経路数” と 理解.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
AtCoder Beginner Contest 037

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

C++の練習を兼ねて, AtCoder Regular Contest 103 の 問題E (Tr/ee) を解いてみた.

■感想.
1. 問題Eは, 方針が見えなかったので, 解説を参考に, AC版に到達できた.
2. 個人的には, 特殊な性質を持つグラフを抽出するロジックが, 面白いと感じた.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
AtCoder Regular Contest 103

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

C++の練習を兼ねて, AtCoder Beginner Contest 231 の 問題F (Jealous Two) を解いてみた.

■感想.
1. 問題Fは, 実装方針を絞り込めたので, AC版に到達出来たと思う.
2. Binary Indexed Tree の 復習が出来たので, 非常に良かったと思う.
公式のライブラリを拝借させて頂いてます.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
パナソニックプログラミングコンテスト2021(AtCoder Beginner Contest 231)
Binary Indexed Tree (Fenwick Tree)

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

C++の練習を兼ねて, AtCoder Beginner Contest 231 の 問題E (Minimal payments) を解いてみた.

■感想.
1. 問題Eは, 解説を参考に, 実装を試行錯誤してみたものの, 実装方針が確定できず, 解説プログラムベースで, AC版としている.
2. メモ化再帰の復習が出来たので, 非常に良かったと思う.
但し, メモ化再帰の本質が理解出来てないので, 今後の課題だと思われる.
3. 方針が見えなかった原因として, 現在見ている硬貨だけでなく, 次回分の硬貨も見る必要がある部分, および, 現在見ている硬貨で割った余りがゼロの場合は, 再帰処理が, 一本化される部分が, 該当すると思われる.
4. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
パナソニックプログラミングコンテスト2021(AtCoder Beginner Contest 231)

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

C++の練習を兼ねて, 第三回 アルゴリズム実技検定 の 問題G (グリッド金移動) を解いてみた.

■感想.
1. 問題Gは, 方針を絞り込むことが出来たので, AC版に到達できたと思う.
2. 過去問(第九回 アルゴリズム実技検定 F – 将棋のように) に似ている問題に見えたため, 実装を一部流用している.
3. 幅優先探索(応用版, 移動可能方向の構築)の復習が出来たので, 非常に良かったと思う.
4. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

本家のサイト 第三回 アルゴリズム実技検定 の 各リンク を ご覧下さい.

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

■参照サイト
第三回 アルゴリズム実技検定

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

C++の練習を兼ねて, AtCoder Beginner Contest 235 の 問題C (Counting 2) ~ 問題D (Neighbors) を解いてみた.

■感想.
1. 問題C, Dは, 方針を絞ることが出来たので, AC版に到達できたと思う.
2. UnionFind木 の 復習が出来たので, 非常に良かったと思う.
公式のライブラリを拝借させて頂いてます.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

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

■参照サイト
パナソニックプログラミングコンテスト2021(AtCoder Beginner Contest 231)
Union-Find木

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

C++の練習を兼ねて, AtCoder Beginner Contest 235 の 問題E (MST + 1) を解いてみた.

■感想.
1. 問題Eは, 方針を絞ることが出来たので, AC版に到達できたと思う.
2. 最小全域木(Kruskal’s Algorithm) の復習が出来たので, 非常に良かったと思う.
公式のライブラリを拝借させて頂いてます.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
HHKB プログラミングコンテスト 2022(AtCoder Beginner Contest 235)
Union-Find木
競プロ典型 90 問 の 問題049

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

C++の練習を兼ねて, AtCoder Beginner Contest 235 の 問題D (Multiply and Rotate) を解いてみた.

■感想.
1. 問題Dは, とりあえず実装したものの, AC版に到達できず, 解説プログラムを参考に, 修正版で, AC版に到達できたと思う.
2. 幅優先探索(応用版, グラフの頂点数削減)の復習が出来たので, 非常に良かったと思う.
3. 実装に苦労した箇所は, プログラム上に記載した T1 ~ T4 になるが, 個人的には, 落とし穴が, たくさんある印象を受けた.
4. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
HHKB プログラミングコンテスト 2022(AtCoder Beginner Contest 235)

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

C++の練習を兼ねて, 第七回 アルゴリズム実技検定 の 問題H (折れ線グラフ) を解いてみた.

■感想.
1. 問題Hは, 方針が見えなかったので, 解説のdp更新式を参照し, AC版に到達できた.
2. 苦手な動的計画法の訓練を積めたので, 非常に良かったと思う.
3. 個人的には, 折れ線グラフの最短距離が, 動的計画法を使って求めることができるロジックが, 非常に興味深く感じた.
4. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

本家のサイト 第七回 アルゴリズム実技検定 の 各リンク を ご覧下さい.

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

■参照サイト
第七回 アルゴリズム実技検定