#P1060. [NOIP 2006 普及组] 开心的金明(Happy Jinming)

0
    ID: 8554 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>P1060背包 DP背包DP动态规划GESP 6级CSP-J

[NOIP 2006 普及组] 开心的金明(Happy Jinming)

[NOIP 2006 普及组] 开心的金明(Happy Jinming)

题目描述

金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过 NN 元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的 NN 元。于是,他把每件物品规定了一个重要度,分为 55 等:用整数 1−51-5 表示,第 55 等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过 NN 元(可以等于 NN 元)的前提下,使每件物品的价格与重要度的乘积的总和最大。

设第 jj 件物品的价格为 vjv_j,重要度为 wjw_j,共选中了 kk 件物品,编号依次为 j1,j2,…,jkj_1,j_2,…,j_k,则所求的总和为:

$v_{j_1} \times w_{j_1}+v_{j_2} \times w_{j_2} …+v_{j_k} \times w_{j_k}$

请你帮助金明设计一个满足要求的购物单。

输入格式

第一行,为 22 个正整数,用一个空格隔开:n,mn,m(n<3×104,m<25n<3\times10^4,m<25)其中 nn 表示总钱数,mm 为希望购买物品的个数。

从第 22 行到第 m+1m+1 行,第 jj 行给出了编号为 j−1j-1 的物品的基本数据,每行有 22 个非负整数 v,pv,p(其中 vv 表示该物品的价格 (v≤104)(v \le 10^4),pp 表示该物品的重要度(1≤p≤51\le p\le5))。

输出格式

11 个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的最大值(<108<10^8)。

样例输入 #1

1000 5
800 2
400 5
300 5
400 3
200 2

样例输出 #1

3900

数据范围

NOIP 2006 普及组 第二题

知识点与难度

本题涉及的知识点从属于 GESP 6级,难度(CF Rating):1050。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例及最小边界测试
1 20 3~8 n≤1000n \le 1000,m≤10m \le 10
2 15 9~11 Hack 数据:存在价格 v=0v = 0 的免费物品、存在 v>nv > n 买不起的昂贵物品、预算恰好装满
3 30 12~20 n<3×104n < 3 \times 10^4,m<25m < 25
4 25 21~25 n=29999n = 29999,m=24m = 24 满规模 0/1 背包测试

出处:原题链接