解决学校鸽子集合位置优化问题的C++代码实现
```cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; // 定义结构体表示鸽子队伍 struct Team { int num; // 鸽子数量 int pos; // 队伍位置 }; // 找到使总距离最小的集合位置 int findOptimalPosition(vector<Team>& teams) { vector<int> pigeonPositions; for (const auto& team : teams) { for (int i = 0; i < team.num; ++i) { pigeonPositions.push_back(team.pos); } } sort(pigeonPositions.begin(), pigeonPositions.end()); int n = pigeonPositions.size(); if (n % 2 == 0) { return pigeonPositions[n / 2 - 1]; } return pigeonPositions[n / 2]; } int main() { int n, m; cin >> n >> m; vector<Team> teams(n); for (int i = 0; i < n; ++i) { cin >> teams[i].num; } for (int i = 0; i < n; ++i) { cin >> teams[i].pos; } // 输出初始时的最优集合位置 cout << findOptimalPosition(teams) << endl; for (int i = 0; i < m; ++i) { char op; cin >> op; if (op == 'A') { int l, r, c; cin >> l >> r >> c; for (int j = l - 1; j < r; ++j) { teams[j].num += c; } } else if (op == 'B') { int x, y; cin >> x >> y; Team temp = teams[x - 1]; if (x < y) { for (int j = x - 1; j < y - 1; ++j) { teams[j] = teams[j + 1]; } } else { for (int j = x - 1; j > y - 1; --j) { teams[j] = teams[j - 1]; } } teams[y - 1] = temp; } // 输出操作后的最优集合位置 cout << findOptimalPosition(teams) << endl; } return 0; } ``` ######[AI问答 | 609点数解答 | 2026-03-28 12:56:47]
- 数轴旅行:从原点出发,能否到达目标位置?(字节豆包 | 225点数解答 | 2026-01-23 19:51:03)47
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)346
- C3期末:精准求解 3 - 20 范围内数列第 k 项值及注意要点(字节豆包 | 242点数解答 | 2025-06-15 11:26:19)140
- C++求解:查找3 - 20项数列第k项值及注意要点(字节豆包 | 325点数解答 | 2025-06-15 11:27:11)158
- C++实现:计算n个元素集合的不同非空子集划分数量(GPT | 266点数解答 | 2024-12-12 21:50:22)163
- C++ 实现:计算 n 个元素集合的非空子集划分数量(贝尔数问题)(百度文心 | 670点数解答 | 2024-12-12 21:50:56)471
- 学校胖鸽子管理难题:用线段树算法高效应对鸽子增减与位置移动 (DeepSeek | 2067点数解答 | 2026-01-19 19:14:39)25
- 解决学校鸽子集合位置优化问题的C++代码实现(字节豆包 | 609点数解答 | 2026-03-28 12:56:47)4
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)316
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)466
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)357
- 解析React 15与Vue 2:从O(n^3)到O(n),Diff算法时间复杂度计算及性能对比 (阿里通义 | 379点数解答 | 2023-11-09 01:49:19)336