关于此题时间复杂度
查看原帖
关于此题时间复杂度
255169
__LePetitPrince__楼主2023/10/9 23:28

这是数天前 T 了一个点的暴力模拟,现在虽然过了但是比较疑惑所以问一下

https://www.luogu.com.cn/record/128214296

#include <stdio.h>
#include <iostream>
const int S = 1e4 + 5;
int n, m, w[S];
int g[S], anstime;
int main() {
	scanf("%d%d", &n, &m);
	for (int i = 1; i <= n; i++) {
		scanf("%d", &w[i]);
	}
	int idx = 1;
	for (int times = 0; ; times++) {
		if (idx == n + 1) {
			printf("%d", anstime);
			return 0;
		}
		for (int i = 1; i <= m; i++) {
			if (times == g[i]) {
				g[i] += w[idx];
				anstime = std::max(anstime, g[i]);
				idx++;
			}
		}
	}
	return 0;
}

可估计外层循环最坏是 n×max{wi}=106n \times max\{w_i\} = 10^6,内层循环是 m=102m = 10^2,乘起来差不多在 1e8 级别应该是能过得啊,以前有些题复杂度乘起来是 一个系数×108一个系数 \times 10^8 都是能过得,请问为什么此题过不了啊

2023/10/9 23:28
加载中...