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版).

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

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

C++の練習を兼ねて, 第七回 アルゴリズム実技検定 の 問題G (べき表現) を解いてみた.

■感想.
1. 問題Gは, 方針が見えなかったので, 解説の漸化式を参考の上, AC版に到達できた.
2. 個人的には, 深さ優先探索の訓練を積めたので, 理解を深めることが出来たと思う.
3. 解説にある漸化式を実装すると, 数列内に重複要素が出てこないことが, 非常に不思議な印象を受けた.
※ 解説を見る前は, 数列内の重複要素を排除する方法が分からなかったため.
4. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

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

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

C++の練習を兼ねて, AtCoder Regular Contest 076 の 問題D (Built?) を解いてみた.

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

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

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

■参照サイト
AtCoder Regular Contest 076
Union-Find木
競プロ典型 90 問 の 問題049

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

C++の練習を兼ねて, AtCoder Beginner Contest 233 の 問題F (Swap and Sort) を解いてみた.

■感想.
1. 問題Fは, グラフを使う方針で, 規則性を抽出できたので, AC版に到達できたと思う.
2. 実装に苦労したものの, Union-Find木, および, 幅優先探索 の 復習 が出来たので, 非常に良かったと思う.
公式のライブラリを拝借させて頂いてます.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
AtCoder Beginner Contest 233
Union-Find木