湫湫系列故事——减肥记I
New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院 关于2015年杭电ACM暑期集训队的选拔 |
湫湫系列故事——减肥记ITime Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Problem Description 对于吃货来说,过年最幸福的事就是吃了,没有之一! 当然,为了方便你制作食谱,湫湫给了你每日食物清单,上面描述了当天她想吃的每种食物能带给她的幸福程度,以及会增加的卡路里量。 Input 输入包含多组测试用例。 [Technical Specification] Output 对每份清单,输出一个整数,即满足卡路里吸收量的同时,湫湫可获得的最大幸福值。 Sample Input 3 Sample Output 10 Source Recommend liuyiding | We have carefully selected several similar problems for you: 5245 5244 5243 5242 5241 |
1 #include<iostream> 2 const int N=110; 3 using namespace std; 4 int dp[N*N*10]; 5 struct Node{ 6 int a,b; 7 }node[N]; 8 9 int main(){ 10 int n; 11 while(~scanf("%d",&n)){ 12 for(int i=0;i<n;i++){ 13 scanf("%d%d",&node[i].a,&node[i].b); 14 } 15 int m; 16 scanf("%d",&m); 17 memset(dp,0,sizeof(dp)); 18 for(int i=0;i<n;i++){ 19 for(int j=0;j<=m;j++){ 20 if(j<node[i].b)continue; 21 dp[j]=max(dp[j],dp[j-node[i].b]+node[i].a); 22 } 23 } 24 printf("%d\n",dp[m]); 25 } 26 return 0; 27 }