共42道题,当前是第19

初赛真题

小 $C$ 到商店购物,她只带了 $SW$ 元钱。有 $n$ 件商品,第 $i$ 件商品的价格为 $w_i$ 元,小 $C$ 对它的满意度为 $v_i$ 。小 $C$ 想要知道,用自己仅有的 $SW$ 元钱,能买到的所有商品的满意度之和最大是多少。

数据保证 $1 \leq n,w_i,v_i \leq 100, 1 \leq SW \leq 10000$

#include <iostream>
using namespace std;

const int INF = 0x3f3f3f3f;

int n, SW, W[105], V[105], Dp[___(1)___];

int main(){
	cin >> n >> SW;
	for (int i = 1; i <= n; i++)
	cin >> W[i] >> V[i];
	for (int i = 1; i <= SW; i++)
		Dp[i] = ___(2)___;
	for (int i = 1; i <= n; i++)
		for (___(3)___)
			Dp[j] = max(Dp[j], ___(4)___);
	int ans = 0;
	for (int i = 1; i <= SW; i++)
		___(5)___;
	cout << ans << "\n";
	return 0;
}

1. D。 $1 \leq SW \leq 10000$,故要选择 $> 10000$ 的数
2. B。 初始化为 $0$。
3. A。 从大到小枚举背包大小。
4. C。 维护当前背包大小为 $j$,要购买第 $i$ 件物品的最大满意度
5. A。 找最大值

Question

1. (1) 处应填()

2. (2) 处应填()

3. (3) 处应填()

4. (4) 处应填()

5. (5) 处应填()

陈伦制作 版权所无 粤ICP备16127491号-1