社区讨论
为啥TLE啊
P9571「NnOI R2-T3」Horizon Blue参与者 4已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lo1rwvgl
- 此快照首次捕获于
- 2023/10/23 01:59 2 年前
- 此快照最后确认于
- 2023/11/03 02:37 2 年前
优化了好几次代码总有三个TLE,dalao看看
CPP#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;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...