C++ 助力禾木解决院子种树数量难题!附代码详解
以下是解决该问题的 C++ 代码: ```cpp #include <iostream> #include <unordered_set> using namespace std; int main() { int n, x, y; // 读取 n, x, y cin >> n >> x >> y; // 用于存储两套方案种树的位置 unordered_set<int> treePositions; // 读取第一套方案种树的位置 for (int i = 0; i < x; ++i) { int position; cin >> position; // 将位置插入集合 treePositions.insert(position); } // 读取第二套方案种树的位置 for (int i = 0; i < y; ++i) { int position; cin >> position; // 将位置插入集合,集合会自动去重 treePositions.insert(position); } // 输出种树的数量,即集合的大小 cout << treePositions.size() << endl; return 0; } ``` 代码解释: 1. 输入读取:首先读取三个整数 `n`、`x` 和 `y`,分别表示挖坑的数量、第一套方案种树的数量和第二套方案种树的数量。 2. 使用 `unordered_set` 存储种树位置:`unordered_set` 是 C++ 标准库中的容器,它可以存储唯一的元素,自动去重。 3. 读取第一套方案种树的位置:循环 `x` 次,每次读取一个位置编号,并将其插入到 `unordered_set` 中。 4. 读取第二套方案种树的位置:循环 `y` 次,每次读取一个位置编号,并将其插入到 `unordered_set` 中。由于 `unordered_set` 的特性,重复的位置会自动去重。 5. 输出种树的数量:输出 `unordered_set` 的大小,即种树的数量。 复杂度分析: - 时间复杂度:$O(x + y)$,主要是读取两套方案种树位置的时间。 - 空间复杂度:$O(x + y)$,主要是存储种树位置的 `unordered_set` 的空间。 ######[AI问答 | 507点数解答 | 2026-01-24 20:11:19]
- 易语言读取文本文件并显示到超级列表框:代码示例与注意要点(DeepSeek | 571点数解答 | 2025-08-23 20:54:40)228
- 易语言:读取并显示特定文本到超级列表框,还能增加新数据的方法与要点(DeepSeek | 1317点数解答 | 2025-08-23 20:58:40)231
- mallshop商城网站:数据库设计与强大业务功能全揭秘(GPT | 257点数解答 | 2024-12-09 14:08:15)275
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)230
- 用Python处理商品销售数据:替换类别、合并类目并输出前5行(百度文心 | 486点数解答 | 2024-08-23 09:14:21)311
- Python 破解:计算序列中满足特定取余条件元素的数量(字节豆包 | 174点数解答 | 2025-05-13 21:29:55)191
- 一文搞定!无名杀“再生安瓿”技能代码全解析及注意事项(字节豆包 | 464点数解答 | 2025-06-15 20:06:30)163
- C# 实现商品类:数量限制 100 及开发注意要点(字节豆包 | 737点数解答 | 2025-09-03 14:44:56)100
- 易语言多线程实战:获取进程信息、读写内存与多线程协同操作(字节豆包 | 790点数解答 | 2025-11-28 03:08:24)40
- 易语言多线程:实现获取进程内存数据与C语言格式基址的高效代码示例(字节豆包 | 677点数解答 | 2025-11-28 03:12:31)50
- 破解Jenkins构建Java项目“数据收集等待过长”难题的实用攻略( | 389点数解答 | 2024-01-18 09:27:30)328
- Jenkins 构建 Java 项目“数据收集等待过长”难题的 10 大解决策略(百度文心 | 551点数解答 | 2024-01-18 09:27:54)289