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

C++の練習を兼ねて, 第10回 アルゴリズム実技検定 過去問 の 問題H (連結成分) を解いてみた.

■感想.
1. 問題Hは, 方針を絞り込めたので, AC版に到達できたと思う
2. Union-Find木 の 復習が出来たので, 非常に良かったと思う.
公式のライブラリを拝借させて頂いてます.
3. 初めは, 深さ優先探索の方針で, 提出したものの TLE版(test_10.txt ~ test_12.txt)となったので, Union-Find木 を利用して, 随時, 頂点情報を, マージする方針に変更した背景がある.
但し, マージの際に, 根に相当する頂点で, 場合分けしないと, TLE版(test_07.txt)となったので, 注意が必要と感じた.
4. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

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

■参照サイト
第10回 アルゴリズム実技検定 過去問
Union-Find木

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

C++の練習を兼ねて, 第10回 アルゴリズム実技検定 過去問 の 問題G (方程式) を解いてみた.

■感想.
1. 問題Gは, 方針を絞り込めたので, AC版に到達できたと思う
2. 個人的には, ニュートン法について, 学習できたので, 良かったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
第10回 アルゴリズム実技検定 過去問

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

C++の練習を兼ねて, AtCoder Grand Contest 023 の 問題C (Painting Machines) を解いてみた.

■感想.
1. 問題Cは, 方針が見えなかったので, 解説を参考に, AC版に到達できたと思う.
2. 但し, このような内容を解答で説明されているだろう, と推測した内容(重複カウントの除外など)をもとに, 実装している.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
AtCoder Grand Contest 023

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

C++の練習を兼ねて, AtCoder Beginner Contest 215 の 問題C (One More aab aba baa) ~ 問題D (Coprime 2) を解いてみた.

■感想.
1. 問題Dは, TLE版を回避できなかったので, 解説を参考に, AC版に到達できたと思う.
2. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

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

■参照サイト
AtCoder Beginner Contest 215

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

C++の練習を兼ねて, AtCoder Regular Contest 147 の 問題A (Max Mod Min) ~ 問題B (Swap to Sort) を解いてみた.

■感想.
1. 問題Bは, 方針が見えなかったので, 解説を参考に, AC版に到達できたと思う.
2. 個人的には, 問題B で, 解説上の不一致度に着目するロジックが, 興味深く感じた.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

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

■参照サイト
AtCoder Regular Contest 147

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

C++の練習を兼ねて, AtCoder Beginner Contest 267 の 問題B (Split?) ~ 問題E (Erasing Vertices 2) を解いてみた.

■感想.
1. 問題D, Eは, いったん実装してみたものの, 方針が誤っていたので, 解説を参考に, AC版に到達できたと思う.
2. 問題D で, 苦手な動的計画法の訓練を積めたので, 非常に良かったと思う.
3. 実装に苦労したものの 問題Eで, 二分探索の復習が出来たので, 非常に良かったと思う.
4. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

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

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

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

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

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

C++の練習を兼ねて, AtCoder Beginner Contest 253 の 問題G (Swap Many Times) を解いてみた.

■感想.
1. 問題Gは, 方針を絞り込めたので, AC版に到達できたと思う.
2. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

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

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

C++の練習を兼ねて, AtCoder Beginner Contest 253 の 問題F (Operations on a Matrix) を解いてみた.

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

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

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

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

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

C++の練習を兼ねて, AtCoder Regular Contest 046 の 問題D (うさぎとマス目) を解いてみた.

■感想.
1. 問題Dは, 方針が見えなかったので, 解説を参考にして, AC版に到達できたと思う.
2. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
AtCoder Regular Contest 046

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

C++の練習を兼ねて, AtCoder Regular Contest 046 の 問題C (合コン大作戦) を解いてみた.

■感想.
1. 問題Cは, 方針が見えなかったので, 解説を参考にして, AC版に到達できたと思う.
2. 実装に苦労したものの, 個人的には, 尺取り法 と std::multiset の復習が出来たので, 非常に良かったと思う.
3. B[i] は, 降順ソート が 必要に見えたため, 実装に反映している(※).
※男性の年収情報 A[i] を 固定した場合に, 女性の希望年収情報 D[i] 以上となる女性の年収情報 C[i] を, すべて, 多重集合に保存し, 男性の希望年収情報 B[i] を 大きい順に, チェックしていくイメージの実装としている.
4. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

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

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

■参照サイト
AtCoder Regular Contest 046