本题为多组测试数据,第一行输入一个正整数,代表测试数据组数。
对于每组测试数据,在第一行输入两个正整数,代表美食数量以及牛牛感到吃撑时的饱腹感需要超过
。
第二行输入个数,依次代表每道美食所能共提供的饱腹感,每道美食能提供的饱腹感不会超过
.
对于每组测试数据,输出一行一个整数代表牛牛在不吃撑的前提下,最多能吃多少根红薯。
2 1 10 10 1 10 11
1 0
#include<iostream> #include<cstring> using namespace std; const int N = 3010; int f[N]; int t, n, m; int main() { cin >> t; while(t--) { memset(f, 0, sizeof f); cin >> n >> m; for(int i=0;i<n;i++) { int x; cin >> x; for(int j=m;j>=x;j--) f[j] = max(f[j], f[j - x] + 1); } cout << f[m] << endl; } }