基于区间标记的树木存活计数C++实现
根据描述,我们需要计算未被任何区域覆盖的树木数量。n棵树木编号通常为1到n,区域为闭区间[Li, Ri]。由于区域可能重合,但每棵树只被摧毁一次,所以只需标记被覆盖的位置,然后统计未被覆盖的数量。 提供C++解决方案如下: ```cpp #include <iostream> #include <vector> using namespace std; int main() { int n, m; cin >> n >> m; vector<bool> destroyed(n + 1, false); // 树木编号从1到n for (int i = 0; i < m; i++) { int L, R; cin >> L >> R; // 确保L和R在[1, n]范围内 if (L < 1) L = 1; if (R > n) R = n; for (int j = L; j <= R; j++) { destroyed[j] = true; } } int count = 0; for (int i = 1; i <= n; i++) { if (!destroyed[i]) count++; } cout << count << endl; return 0; } ``` 代码解释: - 使用布尔数组记录每棵树是否被摧毁。 - 对于每个区域,从L到R标记为已摧毁。 - 最后遍历所有树,统计未被标记的树的数量。 输入样例输出为2,符合预期(树1、5、7未被摧毁,所以剩余3棵?实际样例中:1-3摧毁1,2,3;3-4摧毁4(3已摧毁);6-6摧毁6,剩余5和7,共2棵,正确)。 ######[AI问答 | 385点数解答 | 2026-08-09 10:06:59]
- Python实现:随机录入45位学生四次成绩函数大揭秘(GPT | 477点数解答 | 2024-12-17 17:00:35)436
- Python实现班级45位同学成绩生成、总评计算及分数统计(字节豆包 | 579点数解答 | 2024-12-21 11:55:01)323
- Python实现45位学生四次成绩随机录入及输出(GPT | 441点数解答 | 2024-12-21 21:02:22)324
- Python实战:45位同学成绩生成、总评计算与分数统计揭秘(字节豆包 | 688点数解答 | 2024-12-22 10:14:17)312
- 无名杀“剑气凝聚”技能代码升级:实现武将卡牌旁标记数量直观显示(字节豆包 | 683点数解答 | 2025-07-02 08:02:46)686
- 先识技能超强揭秘:神级无懈、无效卡牌与标记福利!(字节豆包 | 34点数解答 | 2025-03-17 02:55:12)289
- 神秘锁定技:体力变化触发魔标记,上限增减暗藏玄机!(字节豆包 | 36点数解答 | 2025-09-07 22:00:46)149
- 无名杀技能代码:独特锁定技的完整实现与注意要点揭秘(字节豆包 | 768点数解答 | 2025-09-07 22:01:14)197
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)558
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)473
- C++实现:输入整数英文单词算乘积,输出数字与英文结果,可多次计算!(GPT | 2268点数解答 | 2024-05-24 01:55:27)441
- C语言巧解:计算整数区间内最遥远素数差值(阿里通义 | 428点数解答 | 2024-11-22 14:53:33)222