#解説
これも燃えてそう、怖い。これについても色々後日談として書きます。
##問題リンク
https://yukicoder.me/problems/4824
##解法
この問題には、想定解法が2つあります。
###writer解法
この解法では、 "CpCzNkSuTbEoA" を 1 つずつずらした操作を元に戻るまでの文字列を前計算する方法です。
この前計算をすることで、 $S_0$ のときに数字だった $c$ が、最終的に 10 以上になり、文字列になる場合でも前計算したものから直接使用することができます。
###writer想定解
C++14:https://yukicoder.me/submissions/633770
Python3:https://yukicoder.me/submissions/633973
###tester解法
$min(10,N)$ 回先に操作し、 $10\le N$ のときは $N-10$ 回文字列を1回ずらす操作をする、という方法です。この方法だと、 $S_{10}$ 以降は全て英大文字もしくは英小文字になるため、単純なループで済みます。
###tester想定解
C++14:https://yukicoder.me/submissions/633767
Python3:https://yukicoder.me/submissions/633960
#終わりに
新入生プログラミングコンテスト、どうだったでしょうか?個人的には出来はよかったと思います。燃えていなければ、の話ですが。(燃えるな)
後日談に色々書きますので、こちらも是非見てください!
最後まで読んでくださり、ありがとうございます!
More than 3 years have passed since last update.
新入生プログラマーコンテスト夜の部拡張ROTN解説
Last updated at Posted at 2021-03-31
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme