1からまでの各数値が、マルチセットのいくつかの要素の合計として一意に表現できるようなマルチセットの数
私の問題。与えられた、私は、有効なマルチセット数カウントする。マルチセットは次の場合に有効ですS SnnnSSSSSS の要素の合計はであり、nSSSnnn からまでのすべての数は、いくつかの要素の合計として一意に表すことができます。n S111nnnSSS 例。 たとえば、n=5n=5n=5場合、{1,1,1,1,1},{1,2,2},{1,1,3}{1,1,1,1,1},{1,2,2},{1,1,3}\{1,1,1,1,1\}, \{1,2,2\}, \{1,1,3\}は有効です。 ただし、2は\ {1,1 \}と\ {2 \}の両方で形成できるため、S={1,1,1,2}S={1,1,1,2}S=\{1,1,1,2\}は無効です(つまり、2は2 = 1 + 1および2 = 2)なので、2番目の条件は成立しません。同様に、3は\ {2,1 \}および\ {1,1,1 \}で形成できます。{1,1}{1,1}\{1,1\}{2}{2}\{2\}2=1+12=1+12=1+12=22=22=2{2,1}{2,1}\{2,1\}{1,1,1}{1,1,1}\{1,1,1\} S={1,2,4S={1,2,4S=\{1,2,4 }も無効です。これは、111から5までのすべての数値を555一意に作成できるためですが、Sの要素の合計は5でSSSはありません。555 私はかなり前からこの問題に適したアルゴリズムを見つけようとしましたが、解決できません。codechefからです。提出されたソリューションのいくつかを見ましたが、問題を解決するためのロジックをまだ取得できませんでした。注:質問の制限時間は10秒で、n<109n<109n<10^9 マルチセットの場合、表記S={(a1,c1),(a2,c2)...}S={(a1,c1),(a2,c2)...}S = \{(a_1, c_1), (a_2, c_2) ... \} ai<ajai<aja_i iai + 1= (a私c私+a私- 1 )+ 1 ⇒a私| ai + 1ai+1=(aici+ai−1)+1⇒ai|ai+1a_{i+1} = (a_ic_i + …