乌拉乎餐厅排队难题:代码详解最少卡片修改次数
```cpp #include <iostream> #include <vector> #include <algorithm> // 此函数用于计算最少需要修改的卡片数量 int minCardChanges(const std::vector<int>& cards) { int n = cards.size(); // 初始化最小修改次数为一个较大的值 int minChanges = n; // 枚举分割点,尝试将队伍分成两部分 for (int split = 0; split <= n; ++split) { int changes = 0; // 统计前半部分需要修改为1的数量 for (int i = 0; i < split; ++i) { if (cards[i] != 1) { changes++; } } // 统计后半部分需要修改为2的数量 for (int i = split; i < n; ++i) { if (cards[i] != 2) { changes++; } } // 更新最小修改次数 minChanges = std::min(minChanges, changes); } return minChanges; } int main() { int n; // 读取客人的数量 std::cin >> n; std::vector<int> cards(n); // 读取每个客人的用餐批次 for (int i = 0; i < n; ++i) { std::cin >> cards[i]; } // 计算最少修改次数 int result = minCardChanges(cards); // 输出结果 std::cout << result << std::endl; return 0; } ``` 代码解释 1. `minCardChanges` 函数: - 通过枚举所有可能的分割点,将队伍分成前半部分和后半部分。 - 对于每个分割点,统计前半部分需要修改为 `1` 的客人数量和后半部分需要修改为 `2` 的客人数量。 - 比较所有分割点下的修改数量,找出最小值。 2. `main` 函数: - 读取客人的数量 `n`。 - 读取每个客人的用餐批次并存储在 `cards` 向量中。 - 调用 `minCardChanges` 函数计算最少修改次数。 - 输出最终结果。 这个算法通过枚举所有可能的分割点,保证了能找到让编号符合设想所需的最少修改次数。时间复杂度是 $O(n^2)$,因为有一个外层循环枚举分割点,内层有两个循环统计修改次数。 ######[AI问答 | 583点数解答 | 2026-02-08 19:38:03]
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)236
- 全方位攻略:打造 Element UI 中完美方形 el - card 设计 (字节豆包 | 296点数解答 | 2024-10-10 14:13:41)384
- 舞蹈班排队难题:计算婷婷身高排名的C++解法 (字节豆包 | 281点数解答 | 2025-01-14 10:49:34)235
- 舞蹈班排队难题:根据身高算出婷婷前后排队位置(附C++代码)(字节豆包 | 263点数解答 | 2025-01-14 10:49:37)203
- 工程师必备:模块请求从 HTTP 改为 HTTPS 的全流程方案与修改指南 (百度文心 | 351点数解答 | 2023-11-09 18:34:41)455
- Linux开发:CentOS 6.x 中修改 /etc/inittab 设置默认运行级别及新版系统应对建议 (百度文心 | 281点数解答 | 2023-11-09 18:42:13)316
- C++实现单门课程成绩管理系统:教师学生双身份操作全解析(GPT | 6361点数解答 | 2024-05-24 02:01:02)549
- C++ 实现超实用单门课程成绩管理系统,教师学生灵活使用! (GPT | 68点数解答 | 2024-05-24 10:17:09)336
- C++实现:功能完备的单门课程成绩管理系统(GPT | 4293点数解答 | 2024-05-24 10:20:03)383
- 超全!员工数据集10+数据查询分析题目及Python代码实现(讯飞星火 | 645点数解答 | 2024-05-28 12:57:19)224
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)363
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)376