标签: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