TLE了!为什么?
  • 板块题目总版
  • 楼主zhege122
  • 当前回复8
  • 已保存回复8
  • 发布时间2025/1/3 20:34
  • 上次更新2025/1/4 10:01:14
查看原帖
TLE了!为什么?
1123449
zhege122楼主2025/1/3 20:34

开关灯升级版问题!题目大意在代码注释里,TLE了!

CODE

#include <bits/stdc++.h>

using namespace std;

// n, m最大1e6 
const int N = 1e6 + 10;
bool light[N];

int main() {
	int n, m;
	scanf("%d%d", &n, &m);
	memset(light, false, sizeof(light));
	// 开关灯问题 
	while (m--) {
		int op;
		scanf("%d", &op);
		if (op == 1) {
			int x, y;
			scanf("%d%d", &x, &y);
			// 将 [x, y] 区间内的元素(开变成关,关变成开) 
			for (int i = x; i <= y; i++) {
				light[i] = !light[i];
			}
		} else if (op == 2) {
			int x;
			scanf("%d", &x);
			// 将所有为 x 倍数的灯翻转 开变成关,关变成开) 
			for (int i = x; i <= n; i += x) {
				light[i] = !light[i];
			}
		} else if (op == 3) {
			// 将所有灯关闭 
			memset(light, false, sizeof(light));
		}
	}
	for (int i = 1; i <= n; i++) {
		if (light[i]) {
			// 输出 
			printf("%d ", i);
		}
	}
	
	return 0;
}

各位大佬帮我看看!

2025/1/3 20:34
加载中...