使用先序遍历:
#include<bits/stdc++.h>
using namespace std;
int v,n;
vector<int>volum(1010);
int find(int i,int j){
if(j>v)
return 0;
if(i>=n)
return j;
return max(find(i+1,j),find(i+1,j+volum[i]));
}
int main(){
ios::sync_with_stdio(false), cin.tie(nullptr),cout.tie(nullptr);
cin >> v;
cin >> n;
for(int i = 0;i < n;++i){
cin >> volum[i];
}
cout<<v-find(0,0);
return 0;
}



京公网安备 11010502036488号