NIT 1464

来源:互联网 发布:软件招聘网 编辑:程序博客网 时间:2024/06/07 07:08

三师妹再点菜


Time limit: 5000MS    Memory limit: 32768K 
Total Submit: 133    Accepted: 79 

sharp有三个师妹.这个三个师妹很喜欢捉弄sharp.一天sharp请她们三个去东裕吃川菜去了.
她们仨点菜 ,当然她们这次不会放过sharp的,而且她们知道sharp这次身上带了1024元钱,
但是由于上次点菜的时候,三个师妹发现最贵的未必是最好吃的,所以这次她们决定点最最喜欢的菜,
当然每道菜她们只点一次,而且她们点的菜钱总和不会大于1024元,因为超出 了sharp付钱的时候发现不够会叫她们三个付多出来的部分的.

输入
每种情况的第一个行为N,代表有多少种川菜.接下来的N行是每一种川菜的价格 P 和受喜爱程度 A .
价格和受喜爱程度都是整数(1<= P <= 1024,1<= A <= 100 ), sharp身上永远只带1024元钱.


输出
sharp在付出1024以内(包括1024元)可以购买多少菜,使得总的受喜爱程度和最大
请你输出这喜爱程度和.

 

Sample Input

5
1000 10
500 5
500 6
24 1
24 2

 

 
Sample Output

13

AC:

#include<stdio.h> 
#include<string.h> 
int main() 

    int i,j,n,d,dp[1025],q; 
    while(scanf("%d",&n)==1) 
    { 
        memset(dp,0,sizeof(dp)); 
        for(i=0;i<n;i++) 
        { 
            scanf("%d%d",&d,&q); 
            for(j=1024;j>=d;j--) 
                if(dp[j-d]+q>dp[j]) 
                    dp[j]=dp[j-d]+q; 
        } 
            printf("%d\n",dp[1024]); 
    } 
    return 0; 


跟刚才发的是一样的题目,就是多了个喜欢度,代码都一样,只改了一点点。。。没话说了。