为啥TLE啊
查看原帖
为啥TLE啊
848904
tianxun楼主2023/8/19 18:46

优化了好几次代码总有三个TLE,dalao看看

#include <bits/stdc++.h>
using namespace std;

// 线段
struct Line {
	int k,b;
	bool exist;
};

int n; // 见题目
Line lines[100001];
int line_num,line_l;
int com,k,b;  // com是指令,其他见题目
int ks[200002];  // ks[k]=有多少线段等于k

int main() {
	scanf("%d",&n);
	for (int i=0;i<n;i++) {
		scanf("%d %d %d",&com,&k,&b);
		if (k < 0) k += 200001;
		if (b < 0) b += 200001;
		if (com == 1) {
			lines[line_l].k = k;
			lines[line_l].b = b;
			lines[line_l++].exist = true;
			ks[k]++;
			line_num++;
		}
		else if (com == 2) {
			printf("%d\n",line_num-ks[k]);
		}
		else if (com == 3) {
			for (int j=0;j<line_l;j++) {
				if (lines[j].exist && (k != lines[j].k || b == lines[j].b)) {
					lines[j].exist = false;
					ks[lines[j].k]--;
					line_num--;
				}
			}
		}
	}

	return 0;
}
2023/8/19 18:46
加载中...