题解
2025-08-28 15:46:59
发布于:广东
1阅读
0回复
0点赞
我们使用一个布尔数组removed来标记需要移走的树的位置,初始值都为false表示所有树都存在
对于每个输入的区域 [u, v],我们将该区间内所有位置标记为true,表示这些树需要被移走
最后遍历整个马路范围 [0, l],统计未被标记的位置数量,即剩余的树的数量
马路长度 500,有 3 个区域
标记完所有需要移除的树后,统计发现还剩 298 棵树,与样例输出一致
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main() {
int l, m;
cin >> l >> m;
bool removed[10001] = {false};
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
for (int j = u; j <= v; j++) {
removed[j] = true;
}
}
int count = 0;
for (int i = 0; i <= l; i++) {
if (!removed[i]) {
count++;
}
}
cout << count << endl;
return 0;
}
全部评论 1
https://www.acgo.cn/application/1955587765123280896 求进团!!!!!
2025-09-14 来自 广东
0
有帮助,赞一个