做法
最简单的预处理,每次输入一个区间,对这个区间每个位置 cnt\text{cnt}cnt 加 111。
然后最后只需要每次把输入的 ccc 对应的 cntc\text{cnt}_ccntc 输出就行了。
复杂度分析
solve 函数时间复杂度 O(N×Bmax+P)=2.5×106+500\mathcal O(N\times B_{\max}+P) =2.5\times10^6+500O(N×Bmax+P)=2.5×106+500。
总复杂度还要乘上一个 TTT,好在最大只有 101010,可以通过。
注意
请注意题目要求的格式化 Case #x: 的输出。
代码
提示:solve 函数传入的 xxx 是测试用例编号。
constexpr int MAXN = 1e4+5;
int n, p, cnt[MAXN];
void solve(int x) {
memset(cnt, 0, sizeof(cnt));
cin >> n;
for (int i = 1; i <= n; i++) {
int a, b; cin >> a >> b;
for (int j = a; j <= b; j++) cnt[j]++;
}
cin >> p;
cout << "Case #" << x << ": ";
for (int i = 1; i <= p; i++) {
int c; cin >> c;
cout << cnt[c] << " ";
}
cout << endl;
}
记得三连哦~
怎么这题满分才 24 分啊!
328

被折叠的 条评论
为什么被折叠?



