90pts 求助
查看原帖
90pts 求助
1058410
Gcc_Gdb_7_8_1楼主2024/9/13 22:06
#include <bits/stdc++.h>
using namespace std;

long long c[505], l[505], f[10005][505];

int main()
{
	int n, L;
	long long sum = 0LL;
	scanf("%d%d", &n, &L);
	for (register int i = 1; i <= n; i++) {
		scanf("%lld%lld", &c[i], &l[i]);
		sum += c[i];
	}
	for (register long long k = 1; k <= sum; ++k) {
		for (register int i = 1; i <= n; ++i) {
			for (register int j = k; j >= 0; --j) {
				if (j >= c[i]) {
					f[k][j] = max(f[k][j], f[k][j - c[i]] + l[i]);
				}
				else {
					f[k][j] = f[k][j];
				}
			}
		}
		if (f[k][k] >= L) {
			printf("%lld\n", k);
			return 0;
		}
	}
	printf("no solution\n");
	return 0;
}

条了一年多了,球球大佬康康下吧,TLE on #4
recode

2024/9/13 22:06
加载中...