疑问
查看原帖
疑问
1118614
I_Love_DS楼主2024/10/15 10:06

为什么

#include <bits/stdc++.h>

using namespace std;

int n, m, k, a[105], b[105], f[100050];

int main() {
	scanf("%d%d", &n, &m);
	for (int i = 1; i <= n; i++) scanf("%d%d", &a[i], &b[i]), k += b[i];
	memset(f, 127, sizeof(f));
	f[0] = 0;
	for (int i = 1; i <= n; i++) 
		for (int j = k; j >= b[i]; j--) 
			f[j] = min(f[j], f[j - b[i]] + a[i]);
	for (int i = k; i >= 0; i--) 
		if (f[i] <= m) {
			printf("%d", i);
			return 0;
		}
	return 0;
}

WA on #6

把 k 换成 1e5 就过了,求解惑谢谢啦

2024/10/15 10:06
加载中...