pythonで青くなるブログ

主に競プロのについての記事(日記的な)を書きます。現在atcoder水色,こどふぉ青色。python3使って、やってます。atcoder青くなりたい

ICPC 国内予選 2010-c ポロック予想

概要

ICPC 国内予選2010年のc問題を解きました。

judge.u-aizu.ac.jp

  • pythonで時やりたかったけど、TLEな感じだたったので、
    c++でやりました。

概要

x(x+1)(x+2)/6で表される数があって、 それを正四面体数と呼ぶ。
正四面体数をいくつか選んでその和が入力Nになるようにするときに、最小で何個選べばいいか?

解法

  • 動的計画法
    • アリ本だと、p62の個数制限付き部分和問題とか似てた。

ポイント

  • 先に10**6までの作り方を全て計算しておいて、queryをO(1)で処理する
  • 先に正四面体数を計算しておく

先に処理することとDPなのが、重要ポイント!!

 計算量

10*6200くらいの計算してて、pythonだとTLEしちゃいそう。 c++は通るから、強い

 submittion with c++

judge.u-aizu.ac.jp