PS:怎么节省空间
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 13000; int f[maxn+10]; int main() { int w, p; int n, limit; while(scanf("%d%d", &n, &limit)!= EOF) { memset(f, 0, sizeof(f)); for(int i = 1; i <= n; i++) { scanf("%d%d", &w, &p); for(int j = limit; j >= w; j--) { f[j] = max(f[j], f[j-w]+p); } } printf("%d\n", f[limit]); } return 0; }
POJ3624 Charm Bracelet,布布扣,bubuko.com
原文:http://blog.csdn.net/achiberx/article/details/23216945