完全背包【模版(划掉)题】

【问题描述】

小 Q 现在遇到了一道完全背包模板题,可是他不会做,请你帮帮他。

现有 n 件物品,每种物品有无限个,每种物品有一定的重量 wi 和价值 vi。问你在选择的物品的重量之和小于或等于 W 的情况下最大的价值和为多少。

【输入格式】

第一行两个整数,n 和 W。

接下来 n 行,每行两个正整数,第 i 个物品的重量 wi 和价值 vi。

【输出格式】

一行一个非负整数,表示最大的价值和。

【输入样例1】

1 10

3 2

【输出样例1】

6

【输入样例2】

5 10

1 1

2 2

3 3

4 4

5 5

【输出样例2】

10

【输入样例3】

5 10

1 1

2 3

3 3

4 8

5 7

【输出样例3】

19

【数据范围与约定】

对于 20% 的数据,1≤n≤1000,1≤W≤1000
对于 30% 的数据,1≤W≤10000
对于 45% 的数据,1≤n≤10000
对于 100% 的数据,1≤n≤1000000,1≤W≤1010,1≤wi≤100,1≤vi≤108

注:这是我们今天模拟的压轴:upside_down_face:

利用w≤100,将物品装到桶里。

可以前10000用背包,后面的用贪心

2 个赞

OK 先逝逝

要粘代码还是写思路

粘代码就不必了(

但是,这个板子题有什么思路啊,就是按完全背包来做呗

image
原题应为10^10

忽然发现数据范围

披着羊皮的狼

恐怖如斯

《空间优化》啊

常规做是RE

一维数组能受的住的

屏幕截图 2023-08-02 151318

模板 空间,时间都会爆

用一维做

1 \leq W \leq 10^{10} 是真强

用vector逝逝