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

C++の練習を兼ねて, AtCoder Beginner Contest 074 の 問題C(Sugar Water)を解いてみた.

■感想.
1. 結構解ききるまでに, 結構苦労した.
2. 濃度の上限 100 × E / (100 + E) に関するバグを修正するのに, 時間かかってしまった.
3. テストケース 01.txt が, 通過しなかったので, 試行錯誤の結果, 濃度上限が, 0% のパターンと推定して,
砂糖水が, 100 × A [g] あると仮定して, 漸く全テストケースを通過した.


本家のサイトARC083 / ABC074 解説をご覧下さい.


■C++版プログラム


■参照サイト
AtCoder Beginner Contest 074

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

C++の練習を兼ねて, AtCoder Beginner Contest 075 の 問題B(Minesweeper)を解いてみた.

■感想.
問題のタイトル的に, 面白そうな問題だったので, 解いてみた.


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


■C++版プログラム


■参照サイト
AtCoder Beginner Contest 075

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

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

■感想.
時間内に解答出来なかったので, 解説見て解き直ししたところ, “連続する K 本のろうそくに火を付けるのが最適” との記述があり,
なるほどと感心してしまった.
※そのような発想が出てこなかった(汗), とはいえ, 非常に勉強になったので良かったと思う.


本家のサイトABC #107 / ARC #101 Editorialをご覧下さい。


■C++版プログラム


■参照サイト
AtCoder Beginner Contest 107

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

C++の練習を兼ねて, AtCoder Beginner Contest 076 の 問題C(Dubious Document 2)を解いてみた.

■感想.
ゴリゴリ書いた印象で感触悪かったものの, 解説と方針がおおよそ一致していたので, とりあえず, 及第点までは行けたかと思う.


本家のサイトAtcoder Beginner Contest 076 解説をご覧下さい。


■C++版プログラム


■参照サイト
AtCoder Beginner Contest 076

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

C++の練習を兼ねて, AtCoder Beginner Contest 077 の 問題C(Snuke Festival)を解いてみた.

■感想.
① N が 最大 10の5乗 と指示があったので, for文 の 3重ループは, TLE になると推測し, 二分探索などを模索した.
② lower_bound, upper_bound という便利な関数が用意されていることが, ネット上の情報で判明したので, 計算量削減に使えないか, 検討してみた.
③ 最初, A を 基準に試行錯誤してみたが, 条件を満たす組み合わせの数え上げが上手くいかず, 次に, B を 基準に試行錯誤してみたところ, 条件を満たす組み合わせの数え上げが上手くいった.
④ 本家の解答を見たところ, おおよそ解答方針が一致していたので, 時間かかってしまったものの, とりあえず粘ってみた甲斐があったと思われる.


本家のサイトARC084/ABC077 解説をご覧下さい。


■C++版プログラム


■参照サイト
AtCoder Beginner Contest 077
lower_bound、upper_boundの基本的な使い方

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

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

■感想.
① 時間内では, C011_scrambled ~ C016_scrambled で, TLEとなったので, ロジック見直しが必要となった.
※下記ソース: ABC_106_D_1.cpp
② 解答を確認して, 計算量の削減方法について, 大変参考になった.
※下記ソース: ABC_106_D_2.cpp


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


■C++版プログラム


■参照サイト
AtCoder Beginner Contest 106

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

C++の練習を兼ねて, AtCoder Beginner Contest 079 の 問題C(Train Ticket)を解いてみた.

■感想.
① 解答を後で見たところ, if – else if で押し切っているので, なるほどと感心させられた.
② +++, ++-, … , --- の8通り調べる方針は, 一致していたので, 着眼点が大きくブレてはいなかったと思われる.
③ char型 -> int型 の変換方法について, 勉強になったと思われる.


本家のサイトABC 079 解説をご覧下さい。


■C++版プログラム

■参照サイト
AtCoder Beginner Contest 079
char型をint型に変換する方法と注意【数値化 キャスト 文字列変換】

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

C++の練習を兼ねて, AtCoder Beginner Contest 105 の 問題D(Candy Distribution)を解いてみた.

■感想.
① C++ 連想配列クラス(std::map) の 使い方を練習出来て良かったと思う.
② 連想配列クラスから, 値を取り出してくる場合, イテレータを使うのが良いらしい.
③ 余りゼロのケースは, 初めから, カウントアップしておく点に注意が必要.
④ 最大, 48[ms] かかっているテストケースがあったので, 改善の余地が, たくさんありそう.


本家のサイトABC 105 解説をご覧下さい。


■C++版プログラム

■参照サイト
AtCoder Beginner Contest 105
C++ 連想配列クラス std::map 入門

OpenAI Gym を使ってみた(1)

Window10上だと, 敷居が高く感じたので, macOS(High Sierra 10.13.4)上で確認してみた.


■動作環境構築(例)
下記, 参照サイトを参考に, 以下のようなコマンドを実行した.


■動作確認

-> ‘CartPole-v0’ の 動作確認しようとしたところ, CartPole が, 即座に画面外に消えてしまったので,
‘MountainCar-v0’ で 再度, 動作確認した経緯がある.

■参照サイト
OpenAI Gymで強化学習
OpenAI Gym 入門

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

C++の練習を兼ねて, AtCoder Beginner Contest 105 の 問題C(C – Base -2 Number)を解いてみた.


① 制限時間内に, 解答できず終了.
② 公開されている解答を見たものの, 理解不能.
③ 結局, 試行錯誤して, ロジックを積み上げたところ, どうやらテストケースは, 全通過した模様(汗).
④ おそらく, もっと簡単なロジックがあると想定されるので, 後日, 他の方の解答を拝見しようと思う.



本家のサイトABC 105 解説をご覧下さい。


■C++版プログラム

■参照サイト
AtCoder Beginner Contest 105