luogu 1049
体积和价值设为相等做一遍01背包。
然后输出v-f[v]即可。
#include"cstdio" #include"cctype" #include"algorithm" using namespace std; int read() { int c,x=0; while(!isdigit(c=getchar())); while(x=x*10+c-'0',isdigit(c=getchar())); return x; } int f[20001]; int main() { int v=read(),n=read(); while(n--) { int a=read(); for(int j=v; j>=a; j--) f[j]=max(f[j-a]+a,f[j]); } printf("%d",v-f[v]); return 0; }