巧用代码判断:能否让 2n 个小朋友都拥有满意同桌?
```cpp #include <iostream> #include <vector> int main() { int n; std::cin >> n; std::vector<int> p(2 * n); for (int i = 0; i < 2 * n; ++i) { std::cin >> p[i]; } for (int i = 0; i < 2 * n; ++i) { int want = p[i] - 1; if (i == want || p[want] != i + 1) { std::cout << "No"; return 0; } } std::cout << "Yes"; return 0; } ``` 代码解释 1. 输入处理: - `std::cin >> n;`:读取桌子的数量 `n`。 - `std::vector<int> p(2 * n);`:创建一个大小为 `2 * n` 的整数向量 `p`,用于存储每个小朋友想和谁做同桌的信息。 - 通过 `for` 循环读取每个小朋友想和谁做同桌的编号并存储到 `p` 中。 2. 判断逻辑: - 使用 `for` 循环遍历每个小朋友。对于当前小朋友 `i`,获取其想和做同桌的小朋友编号 `want`(这里减 1 是为了将编号转换为 0 索引)。 - 检查两个条件:一是 `i` 是否等于 `want`,即小朋友是否想和自己做同桌;二是 `p[want]` 是否等于 `i + 1`,也就是对方想和做同桌的人是否是当前小朋友。如果这两个条件中有一个不满足,就输出 `No` 并结束程序。 3. 输出结果: - 如果循环结束都没有发现不满足条件的情况,说明所有小朋友都能满意,输出 `Yes`。 ######[AI问答 | 445点数解答 | 2025-11-16 20:07:02]
- 巧判小朋友同桌意愿:满足需求还是无解难题?(字节豆包 | 599点数解答 | 2025-11-16 20:06:12)66
- 巧用代码判断:能否让 2n 个小朋友都拥有满意同桌?(字节豆包 | 445点数解答 | 2025-11-16 20:07:02)78
- MATLAB代码构建线性规划约束:订单尺寸与原材料长度约束解析及优化方向(DeepSeek | 218点数解答 | 2025-05-09 23:10:04)195
- Python 编程助力 Y 老师统计健康作息天数,复杂度仅 O(n)! (字节豆包 | 356点数解答 | 2025-11-15 21:29:16)50
- 月赛作弊者命运裁决:2^n×2^n 方阵赦免递归算法揭秘(DeepSeek | 483点数解答 | 2026-01-05 12:24:54)46
- C++ 破解 4n - 1 结点二叉树优美 DFS 序数量问题:代码、解释与复杂度剖析(字节豆包 | 1304点数解答 | 2026-02-07 20:35:12)27
- JS 代码:判断“red”改值为“green”并弹窗显示结果( | 176点数解答 | 2024-05-20 21:33:04)410
- 用 JS 代码巧妙判断 a 与 b 关系:输出对应结果 ( | 47点数解答 | 2024-05-20 22:10:14)319
- 无名杀“沉默”技能代码:开局获三“魂”,回合内锁敌技能! (字节豆包 | 258点数解答 | 2025-01-14 21:10:05)355
- 揭秘无名杀“沉默”技能代码:开局获三“魂”,回合制敌人技能无效! (DeepSeek | 561点数解答 | 2025-03-15 19:29:30)227
- JavaScript 实现无名杀“沉默”技能代码:开局获魂,回合锁敌技能!(DeepSeek | 605点数解答 | 2025-03-15 19:31:30)394
- 先识技能超强揭秘:神级无懈、无效卡牌与标记福利!(字节豆包 | 34点数解答 | 2025-03-17 02:55:12)225