zoukankan      html  css  js  c++  java
  • A

    A - A
    Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

    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
    * Lines 2..N+1: Line i+1 describes charm i with two space-separated integers: Wi and Di

    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
    #include<iostream>
    #include<algorithm>
    #include<cmath>
    #define max1 13880
    using namespace std;
    
    int main()
    {
    	int n,c;
    	while(cin>>n>>c)
    	{
    		int m[max1]={0};
    		int w[max1];
    		int v[max1];
    		for(int i=1;i<=n;i++)
    		  cin>>w[i]>>v[i];
            for(int i=1;i<=n;i++)
               for(int j=c;j>=w[i];j--)
                  m[j]=max(m[j],m[j-w[i]]+v[i]);
                  
            cout<<m[c]<<endl;
    	}
    
    	return 0;
    }
    


  • 相关阅读:
    存储器类型区分
    语言基础(25):容器与算法
    X11-forwarding
    语言基础(24):句柄类
    Markdown(2):流程图
    剑指offer-树的子结构
    剑指offer-判断链表是否有环
    剑指offer-求链表的中间结点
    剑指offer-合并两个排序的链表
    剑指offer-反转链表
  • 原文地址:https://www.cnblogs.com/NYNU-ACM/p/4248795.html
Copyright © 2011-2022 走看看