https://www.luogu.com.cn/problem/P1049
#include<iostream>
using namespace std
;
int max(int x
, int y
){ return x
> y
? x
: y
; }
int main(){
int size
, num
;
cin
>> size
>> num
;
int arr_size
[31];
int map
[30000] = {0};
for (int i
= 1; i
<= num
; i
++){
cin
>> arr_size
[i
];
}
for (int i
= 1; i
<= num
; i
++){
for (int j
= size
; j
>=arr_size
[i
]; j
--){
map
[j
] = max(map
[j
], map
[j
- arr_size
[i
]] + arr_size
[i
]);
}
}
cout
<< size
-map
[size
] << endl
;
return 0;
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-22653.html