酷代码 AI
菜单
服务商

C++ 实现砍树操作统计剩余树数量的代码及解析

以下是实现该功能的 C++ 代码及详细 ```cpp #include <iostream> #include <vector> using namespace std; int main() { int n, q; // 输入树的数量 n 和操作次数 q cin >> n >> q; // 创建一个长度为 n + 1 的布尔型向量,用于标记每棵树是否被砍掉,初始都为 false 表示未被砍掉 vector<bool> trees(n + 1, false); for (int i = 0; i < q; ++i) { int L, R; // 输入每次操作的左右边界 L 和 R cin >> L >> R; // 遍历从 L 到 R 的所有树,将其标记为已砍掉 for (int j = L; j <= R; ++j) { trees[j] = true; } } int remaining = 0; // 遍历所有树,统计未被砍掉的树的数量 for (int i = 1; i <= n; ++i) { if (!trees[i]) { remaining++; } } // 输出剩余树的数量 cout << remaining << endl; return 0; } ``` ### 代码解释: 1. **输入处理**:首先读取树的数量 `n` 和操作次数 `q`。 2. **标记数组**:创建一个长度为 `n + 1` 的布尔型向量 `trees`,用于标记每棵树是否被砍掉,初始值都为 `false` 表示未被砍掉。 3. **操作处理**:对于每次操作,读取左右边界 `L` 和 `R`,并将从 `L` 到 `R` 的所有树标记为已砍掉(将对应位置的元素设为 `true`)。 4. **统计剩余树的数量**:遍历所有树,统计未被砍掉的树的数量。 5. **输出结果**:输出剩余树的数量。 ######[AI问答 | 486点数解答 | 2026-03-14 19:03:54]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]