社区讨论

Atcoder 灵异事件

学术版参与者 8已保存回复 15

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
15 条
当前快照
1 份
快照标识符
@mje01pn8
此快照首次捕获于
2025/12/20 15:51
2 个月前
此快照最后确认于
2025/12/22 17:00
2 个月前
查看原帖
https://atcoder.jp/contests/arc125/tasks/arc125_e
我在 atcoder 的自定义测试里两个样例都过了,就是全 WA,这是为什么
CPP
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e6;
int n, m, a [N + 5], b [N + 5], c [N + 5], dsum [N + 5];
void Turn () {
	cin >> n >> m;
	for (int i = 1 ; i <= n ; i ++) {
		cin >> a [i];
	} sort (a + 1, a + n + 1);
	
	for (int i = 1 ; i <= m ; i ++) {
		cin >> b [i];
	}
	
	int sumc = 0;
	for (int i = 1 ; i <= m ; i ++) {
		cin >> c [i]; sumc += c [i];
	}
	
	int ans = 1e18, suma = 0, sum = 0;
	for (int j = 1 ; j <= m ; j ++) {
		int t = (b [j] * n - c [j] + b [j] - 1) / b [j];
		if (t < 0) t = 0;
		dsum [t] -= -b [j] * n + c [j] + t * b [j];
		dsum [t + 1] += -b [j] * n + c [j] + t * b [j];
		dsum [t + 1] -= b [j];
	}
	for (int i = 0 ; i <= n ; i ++) {
		if (i > 0) dsum [i] += dsum [i - 1]; 
		sum += dsum [i];
		suma += a [i];
		ans = min (ans, sumc + suma + sum);
	}
	
	cout << ans;
}

int _; void Init () {
//	ios :: sync_with_stdio (0); cin. tie (0); cout. tie (0);
	_ = 1;
//	freopen (".in", "r", stdin);
//	freopen (".out", "w", stdout);
//	cin >> _;
}

	signed main () { Init ();
	while (_ --> 0)
	Turn (); return 0; }

回复

15 条回复,欢迎继续交流。

正在加载回复...