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

C++の練習を兼ねて, AtCoder Beginner Contest 220 の 問題C (Long Sequence) ~ 問題D (FG operation) を解いてみた.

■感想.
1. 問題D は, 動的計画法の更新式を抽出できたので, AC版に到達できたと思う.
2. 苦手な動的計画法の訓練を積めたので, 非常に良かったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

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

■参照サイト
AtCoder Beginner Contest 220

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

C++の練習を兼ねて, AtCoder Beginner Contest 219 の 問題G (Propagation) を解いてみた.

■感想.
1. 問題G は, 方針が見えなかったので, 解説を参考に実装したところ AC版に到達できた.
2. (競プロ典型 90 問 の 問題083 (Colorful Graph))に, 類似している印象を受けたものの, AC版となるための実装までに, 苦労したように思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
サイシードプログラミングコンテスト2021(AtCoder Beginner Contest 219)
083 – Colorful Graph

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

C++の練習を兼ねて, AtCoder Beginner Contest 217 の 問題G (Groups) を解いてみた.

■感想.
1. 問題G は, 方針が見えなかったので, 解説を参考に実装したところ AC版に到達できた.
2. 苦手な動的計画法の訓練を積めたので, 非常に良かったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
AtCoder Beginner Contest 217

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

C++の練習を兼ねて, AtCoder Regular Contest 126 の 問題A (Make 10) ~ 問題B (Cross-free Matching) を解いてみた.

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

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

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

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

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

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

C++の練習を兼ねて, AtCoder Beginner Contest 219 の 問題F (Cleaning Robot) を解いてみた.

■感想.
1. 問題F は, 方針が見えなかったので, 解説を参考に実装したところ AC版に到達できた.
2. 実装に, 非常に苦労したものの, いろいろ参考になった知識が多く, 非常に良かったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
サイシードプログラミングコンテスト2021(AtCoder Beginner Contest 219)

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

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

■感想.
1. 問題E は, 方針が見えなかったので, 解説を参考に実装したところ AC版に到達できた.
2. 実装に, 非常に苦労したものの, 幅優先探索の復習が出来たので, 非常に良かったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
AtCoder Beginner Contest 219

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

C++の練習を兼ねて, AtCoder Beginner Contest 219 の 問題C (Neo-lexicographic Ordering) ~ 問題D (Strange Lunchbox) を解いてみた.

■感想.
1. 問題D は, 方針が見えなかったので, 解説を参考に実装したところ AC版に到達できた.
2. 苦手な動的計画法の訓練を積めたので, 非常に良かったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

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

■参照サイト
AtCoder Beginner Contest 219

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

C++の練習を兼ねて, AtCoder Beginner Contest 218 の 問題G (Game on Tree 2) を解いてみた.

■感想.
1. 問題G は, 方針が見えなかったので, 解説(プログラム)を参考に実装して, AC版に持って行く方針を取った.
2. 苦手な動的計画法(木dp)の訓練を積めたので, 非常に良かったと思う.
3. いったん自力で実装してみたものの, AC版に到達できなかった.
-> 原因としては, 二つの multiset の 個数調整で, 実装が正しくなかったこと, dpへの中央値設定(のタイミング, 更新条件)などがあげられると推測する.
いずれにしても, dfsの実装を正しく行うことは, 相変わらず, 直観的に分かりづらく, 難しく感じる(※)ため, 継続して, 今後の課題になっていくと思う.
※dfsの終了条件, dp更新(条件, タイミング)などが, 難しく感じる原因の一つと推測する.
4. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
AtCoder Beginner Contest 218

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

C++の練習を兼ねて, AtCoder Beginner Contest 218 の 問題F (Blocked Roads) を解いてみた.

■感想.
1. 問題F は, 方針が見えなかったので, 解説を参考に実装したところ, AC版に到達出来た.
2. 幅優先探索の復習が出来たので, 非常に良かったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
AtCoder Beginner Contest 218

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

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

■感想.
1. 問題E は, 方針が見えなかったので, 解説を参考に実装したところ, AC版に到達出来た.
2. 個人的には, 解説にあるように, 最小全域木(Kruskal’s Algorithm) の性質を使って, 最終的に, 数式まで落とし込んでいくロジックが, 非常に面白いと感じた.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
AtCoder Beginner Contest 210