QOJ.ac

QOJ

時間限制: 3.0 s 記憶體限制: 512 MB 總分: 100

#11911. 背包问题

统计

你被给出了一个经典的背包问题:给定一组元素 $(w_1, v_1), \dots, (w_n, v_n)$ 和一个容量 $W$。求解 $$\max_{\substack{S \subseteq [n] \\ \sum_{i \in S} w_i \le W}} \sum_{i \in S} v_i$$ 这里 $[n]$ 是从 1 到 $n$ 的整数列表。

保证 $0 \le n \le 500$,$0 \le w_i \le W \le 10^{17}$,且 $0 \le v_i \le 10^{16}$。此外,保证 $w_i$ 已经按照下述段落进行了“平滑”处理。

一个符合上述界限的题目实例被构造出来。然后,一个随机化过滤器被应用于该题目实例,具体如下:令 $B$ 为最大重量元素的重量。现在,对每个重量应用以下更新: $$w_i \leftarrow \min(w_i + \text{rand}(\lfloor .05B \rfloor), W)$$ 这里 $\text{rand}(A)$ 是一个生成 $[0, A-1]$ 范围内均匀随机整数的函数。此过程仅应用于 $w_i$,而不应用于 $W$ 或任何其他值。

输入格式

第一行包含两个空格分隔的整数 $n$ 和 $W$。接下来的 $n$ 行,每行包含两个空格分隔的整数 $w_i$ 和 $v_i$。元素重量是按照上述方式生成的。首先,物品的选择符合所有界限,然后应用平滑算法。结果即为你的程序将接收到的输入。

输出格式

输出一行,表示给定背包问题实例的值。

样例

样例输入 1

3 5
1 2
2 3
3 4

样例输出 1

7

样例输入 2

3 302000
100588 2
200421 1000
30036 1

样例输出 2

1002

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.