【C++練習日記】 --ABC185_d--
初投稿なんだよなぁ
今、研究室のセミナー中なんだけど、暇すぎるので適当にブログ的なものを開設して適当に試験的に投稿してみるぞぉ。新規登録して1時間ちょっとなのでシステムとか何ができるかとか全然理解してないけど頑張るぞぉ。
早速
【問題】https://atcoder.jp/contests/abc185/tasks/abc185_d
N < 1.e9, M < 2.e5という条件を
const int NMAX = 1000000010;
const int MMAX = 200010;
で設定。これが後々問題になる。
このときdefaultで
vector<vi> pre(NMAX+1);
vi dist(NMAX+1);
vector<bool> visited(NMAX+1);
という三文をメモしていたのだが、ここが干渉したようで、何をやっても出力が得られなかった。
※ 環境構築の問題も疑いcondaでcppの環境を作ろうと試みたがwindowsでしかworkしないようで諦めた。
上記の干渉を発見し気を取り直してコーディングを続けた。問題としてはかなり短調で基本的な内容であった。
今回の問題の意図
・Sortの練習
他の人の解答をみていると、最後の各スペースでのハンコを押す回数の計算で、
ans += (s[i] + min_space - 1) / min_space;
としているものが散見されたが、
1. long long divceil(long long a, long long b) {
2. if(a % b == 0) return a / b;
3. return a / b + 1;
4. }
素直に割り切れたらそのまま、割り切れなかったら商に1を加えたものを返せば良いのではと思ってしまう。逆にこの場合分けを必要としない解き方が存在するという知見を得られたことは嬉しく思う。
こんな感じでいいのかな
ということで、初投稿を試験的に行なってみました。気が向いたら更新していこうと思いますが、基本的には備忘録的な立ち位置になると思いますぅ。