0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

競プロ日記#25/03/07

Posted at

アルゴ式-お菓子 (2)

  • 最短で求めるにあたって以下の様に考えてしまっていたが、3倍を有効活用するためにあえて+1をするパターンがあることに気づくまで時間がかかってしまった。
  1. 最初の1日は1個お菓子を作る
  2. そこからはNを超えない範囲で常に3倍
  3. 3倍するとNを超える値になったらひたすら1日1個のお菓子を作る
  • そこから以下の様に考え直した
  1. もしNが3の倍数ならば3で割る。そうでなければ-1をする。
  2. これをNが0になるまで繰り返す。
    これによって最短のX日目にちょうどN個になるまでを逆算で求めていけば最も効率的な経路をたどることに気づいた。
while(countOkashi > 0){
    if (countOkashi % 3 == 0){
        countOkashi /= 3;
    } else {
        countOkashi--;
    }
    count++;
}

この解法に至るまで時間がかかったことについて

  • 「1日目から順に考える」「Nを超えるまでは3倍して最後は+1連打するのが最も最短」という考えに頭が支配されて問題がおかしいのではないかと疑うくらい凝り固まってしまった。
  • 正直なんで逆算する解法をひらめいたかもよくわからないが、当問題は確認問題のため公式の模範解答や解説もなく20分ほど悩んでしまった。この程度で20分くらい悩んでしまった挙句問題を疑いだすという自分の愚かさ、センスのなさにかなり傷ついた。先が思いやられる。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?