列表

详情


NC25745. 郭嘉烜送礼(一)

描述

郭嘉烜现在在给女朋友挑礼物,以提升女朋友对他的好感度。商店里有n种礼物,他们的库存都是无限的。第i种礼物能够提升女朋友对他的好感度v[i],第i种礼物的价格为w[i],现在郭嘉烜只有c元,问他应该挑选哪些礼物来使得女朋友对他的好感度提升最多。

输入描述

第一行包括两个整数n、c。

接下来n行,每行2个数,表示表示第i种礼物能够提升女朋友对他的好感度v[i]与第i种礼物的价格w[i]。

输出描述

一行。一个整数,表示最多能提升的好感度。

示例1

输入:

2 2 1 1 2 1

输出:

4

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 3ms, 内存消耗: 344K, 提交时间: 2020-05-13 16:32:31

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,c,dp[1005];
    cin>>n>>c;
    int v,w;
    for(int i=1;i<=n;i++)
    {
        cin>>v>>w;
        for(int j=w;j<=c;j++)
        {
            dp[j]=max(dp[j],dp[j-w]+v);
        }
    }
    cout<<dp[c];
}

Python3(3.5.2) 解法, 执行用时: 481ms, 内存消耗: 3560K, 提交时间: 2020-05-13 16:55:37

n, c = map(int, input().split())
dp = [0] * (c + 1)
for i in range(n):
    v, w = map(int, input().split())
    for j in range(c + 1):
        if j >= w:
            dp[j] = max(dp[j], dp[j - w] + v)
print(dp[c])

C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 496K, 提交时间: 2020-05-13 16:25:47

#include<bits/stdc++.h>
using namespace std;

int main()
{
    cout << 0<< endl;
    return 0;
}

上一题