P11297 [NOISG 2018 Prelim] Knapsack

题目背景

翻译自 [NOISG 2018 Prelim B. Knapsack](https://github.com/noisg/sg_noi_archive/tree/master/2018_prelim)。

题目描述

你获得了超市的“免费购物”优惠,规则如下: - 你有一个容量为 $S$ 的购物篮。超市里共有 $n$ 样东西。第 $i$ 样东西的重量 $w_i$,价值为 $v_i$,这样东西共有 $k_i$ 个。 - 你可以向你的购物篮塞入你想买的东西,前提是**这些东西的重量总和不超过购物篮的容量**。 现在,你只想知道,在满足规则的情况下,你最多能带多少价值的东西回去? **请不要低估本题目的难度,如果你看到这就想写,请查看【数据范围】一栏**。

输入格式

第一行两个正整数 $S,n$。 接下来 $n$ 行,每行三个正整数 $v_i,w_i,k_i$。

输出格式

一行一个正整数,代表你最多能带多少价值的东西回去。

说明/提示

### 【样例 #1 解释】 拿第 $2,3,4,5$ 种东西,每种东西拿一个。 此时价值为 $15$,重量为 $8$。 ### 【样例 #2 解释】 拿完第 $1,2$ 种东西后拿两个第 $3$ 种东西。 此时价值为 $5400$,重量为 $20$。 ### 【数据范围】 | $\text{Subtask}$ | 分值 | $n\leq$ | $k\leq$ | | :----------: | :----------: | :----------: | :----------: | | $0$ | $0$ | 样例 | 样例 | | $1$ | $12$ | $1$ | - | | $2$ | $17$ | $100$ | $1$ | | $3$ | $20$ | $100$ | $10$ | | $4$ | $24$ | $100$ | $10^9$ | | $5$ | $27$ | $10^5$ | $10^9$ | | $6$(hack) | $0$ | $10^5$ | $10^9$ | 对于 $100\%$ 的数据: - $1 \leq w_i \leq S \leq 2000$ - $1 \leq n \leq 10^5$ - $1 \leq v_i \leq 10^6$ - $1 \leq k_i \leq 10^9$