题解 | #[NOIP2001]装箱问题#
[NOIP2001]装箱问题
https://www.nowcoder.com/practice/55100a6608ad4656849dbd1f16d044cb
使用先序遍历:
#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; }