POJ - 3624
Description Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charms possible from the N (1 ≤ N ≤ 3,402) available charms. Each charm i in the supplied list has a weight Wi (1 ≤ Wi ≤ 400), a 'desirability' factor Di (1 ≤ Di ≤ 100), and can be used at most once. Bessie can only support a charm bracelet whose weight is no more than M (1 ≤ M ≤ 12,880). Given that weight limit as a constraint and a list of the charms with their weights and desirability rating, deduce the maximum possible sum of ratings. Input * Line 1: Two space-separated integers: N and M Output * Line 1: A single integer that is the greatest sum of charm desirabilities that can be achieved given the weight constraints Sample Input 4 6 1 4 2 6 3 12 2 7 Sample Output 23 Source
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int dp[100100]; struct node { int w,val; }edge[100100]; int main() { int m,n; while(scanf("%d%d",&m,&n)!=EOF) { memset(dp,0,sizeof(dp)); for(int i=0;i<m;i++) scanf("%d%d",&edge[i].w,&edge[i].val); for(int i=0;i<m;i++) for(int j=n;j>=edge[i].w;j--) dp[j]=max(dp[j],dp[j-edge[i].w]+edge[i].val); printf("%d ",dp[n]); } return 0; } |
FAQ | About Virtual Judge | Forum | Discuss | Open Source Project
All Copyright Reserved ©2010-2014 HUST ACM/ICPC TEAM
Anything about the OJ, please ask in the forum, or contact author:Isun
Server Time: 2015-10-14 17:57:36