标签:des style blog http color io os ar java
这道题目看出背包很容易,主要是处理背包的时候需要按照q-p排序然后进行背包。
这样保证了尽量多的利用空间。
2 10 10 15 10 5 10 5 3 10 5 10 5 3 5 6 2 7 3
5 11
#include <algorithm> #include <iostream> #include <stdlib.h> #include <string.h> #include <iomanip> #include <stdio.h> #include <string> #include <queue> #include <cmath> #include <stack> #include <map> #include <set> #define eps 1e-10 ///#define M 1000100 #define LL __int64 ///#define LL long long ///#define INF 0x7ffffff #define INF 0x3f3f3f3f #define PI 3.1415926535898 #define zero(x) ((fabs(x)<eps)?0:x) ///#define mod 10007 const int maxn = 5010; using namespace std; int dp[maxn]; struct node { int p, q, v; }f[510]; bool cmp(node a, node b) { return a.q-a.p < b.q-b.p; } int main() { int n, m; while(~scanf("%d %d",&n, &m)) { for(int i = 1; i <= n; i++) scanf("%d %d %d",&f[i].p, &f[i].q, &f[i].v); for(int i = 0; i <= m; i++) dp[i] = 0; sort(f+1, f+n+1, cmp); for(int i = 1; i <= n; i++) for(int j = m; j >= f[i].q; j--) dp[j] = max(dp[j] , dp[j-f[i].p] + f[i].v); printf("%d\n",dp[m]); } } /* 3 10 3 6 10 3 8 4 2 10 7 */
HDU 3466 Proud Merchants(01背包)
标签:des style blog http color io os ar java
原文地址:http://blog.csdn.net/xu12110501127/article/details/40260001