問題一覧 > 通常問題

No.2167 Fibonacci Knapsack

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 22
作問者 : chineristAC / テスター : hamamu
2 ProblemId : 8871 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-12-18 21:48:23

問題文

フィボナッチ数 FnF_n を、次の漸化式で定義される数列とします。 Fn={1n=12n=2Fn2+Fn1n3F_n = \begin{cases} 1 & n = 1 \\ 2 & n = 2 \\ F_{n - 2} + F_{n - 1} & n \ge 3 \end{cases}

NN 個の品物があります。品物には 1,2,,N1, 2, \ldots, N と番号が振られています。各 i=1,2,,Ni = 1, 2, \ldots, N について、品物 ii の重さは wiw_i で、価値は FiF_{i} です。

まぐふらい君は、これらの品物をスーツケースに詰めて運ぼうとしています。ただし、スーツケースに詰める重さの総和は WW 以下である必要があります。

スーツケースに詰める品物の、価値の総和の最大値を求めてください(ただし、スーツケースに詰められる品物が存在しない場合は 00 としてください)。なお、この問題の制約下で、価値の総和は 101810^{18} を超えないことが証明できます。

TT 個のテストケースについて求めてください。

入力

入力は以下の形式で与えられます。
TT
case1case_1
case2case_2
\vdots
caseTcase_{T}
各テストケースは以下の形式で与えられます。
NN WW
w1w_1 w2w_2 \dots wNw_N
  • 1T1001 \le T \le 100
  • 1N751 \le N \le 75
  • 1W10181 \le W \le 10^{18}
  • 1wi10161 \le w_i \le 10^{16}
  • 与えられる入力はすべて整数

出力

TT 行出力してください。ii 行目には ii 番目のテストケースの答えを出力して下さい。

サンプル

サンプル1
入力
1
5 7
1 2 3 4 5
出力
10

2, 52,\ 5 番目の品物を選ぶと価値の総和を F2+F5=2+8=10F_2+F_5=2+8=10 にできます。価値の総和をこれ以上大きくする方法はないので答えは 1010 になります。

サンプル2
入力
1
5 7
8 9 10 11 12
出力
0

品物の重さは WW を超えることがあります。このケースでは品物は 11 つもスーツケースに詰めることができないので答えは 00 です。

サンプル3
入力
2
11 50
1 3 3 3 12 129 13 34 68 30 24
20 6023
286 1304 1882 1144 6 1154 642 136 1076 1638 968 1266 448 374 288 1298 1708 1344 580 1088
出力
176
26492

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。