Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Beginner Contest 138

5完2WA。今回は比較的難易度が低かったようですね。

そして・・・

f:id:mdstoy:20190818230332p:plain

ねんがんの みずいろれーとを てにいれたぞ

各問題

A - Red or Not

条件通りにif文を書くだけです。

B - Resistors in Parallel

これまた条件通りに計算していけばいいです。入力例のところで分数の計算がしてあるので戸惑うかもしれませんが、逆数は1 / Aで求められますからそれを粛々と計算していくだけです。

C - Alchemist

価値の低い具材二つを選んで合成していくのが一番高いです。それを例えばC++ならmultisetを使えば楽に実装できます。

私はmultisetを使うべきところでsetを使ってしまい1WA出してしまいました。うーん、詰めが甘い・・・。

どうでもいいですが、珍しく整数ではなく実数を扱う問題が2問続きましたね

D - Ki

  • 木を構築します
  • 操作で示された頂点(だけ)に値を加算していきます
  • 根から再帰で降りていって親の値を子に伝播させていきます

終わりです。

これDじゃなくてCなのでは?

E - Strings of Impurity

まずtに含まれていてsに含まれていない文字がある場合、当然構築できないので-1です。 sは10100回と、充分な回数連結されるので、文字種は足りているけど長さが足りずに構築できないということは考える必要がありません。

あとは、tの文字列の先頭の文字から順にsを検索していって、文字数を積んでいくだけです。 注意するのは、検索開始位置は前回のヒット位置の後ろからになることと、単純なループで回すと安定のTLEなので効率のいい検索関数を使うことくらいですね。

私はついうっかり二重ループ解を投げて1TLEでした。(学習能力皆無)

これもEじゃなくてCなのでは?

F - Coincidence

f:id:mdstoy:20190818225918p:plain

「何らかの」規則性があることは、上図のとおり実験によりわかりました。

その規則性を式に落とす時間も実装する時間もありませんでした。まあしゃあない。

まとめ

ついに念願の水色レートに到達しました!! うれしい。とにかくうれしい。 しかし、まだ青パフォーマンスは1回しか取ったことがないので、さらに上に行くには精進の仕方を大きく変えていかなければならないようです。

「水色になるまでにやったこと」は近いうちに書こうと思っています。 45歳の現役職業プログラマがやったこと、は大抵の競プロerには参考にはならないでしょうけどw、それだけに自分には若者とは違う何かがあるかもしれないと思っているので。(ないかもしれないけど

f:id:mdstoy:20190818231219p:plain