标签:eof res logs eva price begin imu 地方 memset
InputThere are several test cases in the input.
Each test case begin with two integers N, M (1 ≤ N ≤ 500, 1 ≤ M ≤ 5000), indicating the items’ number and the initial money.
Then N lines follow, each line contains three numbers Pi, Qi and Vi (1 ≤ Pi ≤ Qi ≤ 100, 1 ≤ Vi ≤ 1000), their meaning is in the description.
The input terminates by end of file marker.
OutputFor each test case, output one integer, indicating maximum value iSea could get.
Sample Input
2 10 10 15 10 5 10 5 3 10 5 10 5 3 5 6 2 7 3
Sample Output
5 11
#include <iostream> #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; struct node { int v1; int c; int w; }a[100000]; int dp[10000]; bool cmp(node a,node b) { return a.c-a.v1<b.c-b.v1; } int main() { int n,v; while(~scanf("%d%d",&n,&v)) { memset(dp,0,sizeof dp); for(int i=0;i<n;i++) { scanf("%d%d%d",&a[i].v1,&a[i].c,&a[i].w); } sort(a,a+n,cmp); for(int i=0;i<n;i++) for(int j=v;j>=a[i].c;j--) { dp[j]=max(dp[j],dp[j-a[i].v1]+a[i].w); } printf("%d\n",dp[v]); } return 0; }
排序的地方注意一下。。。因为A 需要的时间 A。V1+B.c B的时间是B.V1+A.C;
标签:eof res logs eva price begin imu 地方 memset
原文地址:http://www.cnblogs.com/2014slx/p/7811933.html