• Atcoder D


    D - Knapsack 1


    Time Limit: 2 sec / Memory Limit: 1024 MB

    Score : 100100 points

    Problem Statement

    There are NN items, numbered 1,2,,N1,2,…,N. For each ii (1iN1≤i≤N), Item ii has a weight of wiwi and a value of vivi.

    Taro has decided to choose some of the NN items and carry them home in a knapsack. The capacity of the knapsack is WW, which means that the sum of the weights of items taken must be at most WW.

    Find the maximum possible sum of the values of items that Taro takes home.

    Constraints

    • All values in input are integers.
    • 1N1001≤N≤100
    • 1W1051≤W≤105
    • 1wiW1≤wi≤W
    • 1vi1091≤vi≤109

    Input

    Input is given from Standard Input in the following format:

    NN WW
    w1w1 v1v1
    w2w2 v2v2
    ::
    wNwN vNvN
    

    Output

    Print the maximum possible sum of the values of items that Taro takes home.


    Sample Input 1 Copy

    Copy
    3 8
    3 30
    4 50
    5 60
    

    Sample Output 1 Copy

    Copy
    90
    

    Items 11 and 33 should be taken. Then, the sum of the weights is 3+5=83+5=8, and the sum of the values is 30+60=9030+60=90.


    Sample Input 2 Copy

    Copy
    5 5
    1 1000000000
    1 1000000000
    1 1000000000
    1 1000000000
    1 1000000000
    

    Sample Output 2 Copy

    Copy
    5000000000
    

    The answer may not fit into a 32-bit integer type.


    Sample Input 3 Copy

    Copy
    6 15
    6 5
    5 6
    6 4
    6 6
    3 5
    7 2
    

    Sample Output 3 Copy

    Copy
    17
    

    Items 2,42,4 and 55 should be taken. Then, the sum of the weights is 5+6+3=145+6+3=14, and the sum of the values is 6+6+5=176+6+5=17.

    题目链接:https://atcoder.jp/contests/dp/tasks/dp_d

      题意:有N个团队,每一个团队有w[i]个人,并且有v[i]的贡献值。

    现在你有一个W的容量的公司,你需要从这n个团队中挑选出几个(每一个团队只能挑选一次),使之团队人数的总和小于W,并且贡献值的总和尽可能的大。

    思路:裸的普通的背包问题。

    我的AC代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    #include <queue>
    #include <stack>
    #include <map>
    #include <set>
    #include <vector>
    #define rep(i,x,n) for(int i=x;i<n;i++)
    #define repd(i,x,n) for(int i=x;i<=n;i++)
    #define pii pair<int,int>
    #define pll pair<long long ,long long>
    #define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
    #define MS0(X) memset((X), 0, sizeof((X)))
    #define MSC0(X) memset((X), '', sizeof((X)))
    #define pb push_back
    #define mp make_pair
    #define fi first
    #define se second
    #define gg(x) getInt(&x)
    using namespace std;
    typedef long long ll;
    inline void getInt(int* p);
    const int maxn=1000010;
    const int inf=0x3f3f3f3f;
    /*** TEMPLATE CODE * * STARTS HERE ***/
    int n,m;
    int w[maxn];
    ll v[maxn];
    ll dp[maxn];
    int main()
    {
        gbtb;
        cin>>n>>m;
        repd(i,1,n)
        {
            cin>>w[i]>>v[i];
        }
        repd(i,1,n)
        {
            for(int j=m;j>=w[i];j--)
            {
                dp[j]=max(dp[j],1ll*dp[j-w[i]]+v[i]);
            }
        }
        cout<<dp[m];
        return 0;
    }
    
    inline void getInt(int* p) {
        char ch;
        do {
            ch = getchar();
        } while (ch == ' ' || ch == '
    ');
        if (ch == '-') {
            *p = -(getchar() - '0');
            while ((ch = getchar()) >= '0' && ch <= '9') {
                *p = *p * 10 - ch + '0';
            }
        }
        else {
            *p = ch - '0';
            while ((ch = getchar()) >= '0' && ch <= '9') {
                *p = *p * 10 + ch - '0';
            }
        }
    }

    本博客为本人原创,如需转载,请必须声明博客的源地址。 本人博客地址为:www.cnblogs.com/qieqiemin/ 希望所写的文章对您有帮助。
  • 相关阅读:
    (八十五)c#Winform自定义控件-引用区块-HZHControls
    (八十四)c#Winform自定义控件-导航菜单(Ribbon菜单)-HZHControls
    (八十三)c#Winform自定义控件-导航菜单(扩展)-HZHControls
    (八十二)c#Winform自定义控件-穿梭框-HZHControls
    (八十一)c#Winform自定义控件-时间轴-HZHControls
    (八十)c#Winform自定义控件-分割线标签-HZHControls
    (七十九)c#Winform自定义控件-导航菜单-HZHControls
    (七十八)c#Winform自定义控件-倒影组件-HZHControls
    (七十七)c#Winform自定义控件-采样控件-HZHControls
    (七十六)c#Winform自定义控件-表单验证组件-HZHControls
  • 原文地址:https://www.cnblogs.com/qieqiemin/p/10252158.html
Copyright © 2020-2023  润新知