求调 WA in #4 #6 #8 #10 60pts
查看原帖
求调 WA in #4 #6 #8 #10 60pts
495908
llycdasanbing楼主2024/3/21 22:18
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

const int maxn = 1007;

int n, c, val[maxn];
ll pre_sum[maxn], max_Ans;

void dfs(int m, long long cnow) {
	if (cnow + pre_sum[m - 1] <= c) {
		max_Ans = max(max_Ans, cnow + pre_sum[m - 1]);
		return;
	}
	if (cnow + pre_sum[m - 1] < max_Ans)return;
	for (int i = m - 1; i >= 1; i--) {
		if (cnow + val[i] > c)continue;
		dfs(i, cnow + val[i]);
	}
	return;
}
int main() {
	freopen("P5194_3.in", "r", stdin);
	cin >> n >> c;
	long long sum = 0;
	for (int i = 1; i <= n; i++) {
		cin >> val[i];
		pre_sum[i] = pre_sum[i - 1] + val[i];
		sum += val[i];
	}
	dfs(n + 1, 0);
	cout << max_Ans;
}

用了#4和#6的数据测试

#4

ans:10079654261007965426

my output:10079654251007965425

#6

ans:10541726501054172650

my output:10541726491054172649

每次都差1 但是不知道问题出在哪了 求大佬帮助

2024/3/21 22:18
加载中...