C++实现查找覆盖指定点的最上面地毯编号
```cpp #include <iostream> using namespace std; const int MAXN = 10005; // 定义结构存储地毯信息 struct Carpet { int a, b; // 左下角坐标 int g, k; // 在x轴和y轴方向的长度 }; Carpet carpets[MAXN]; int main() { int n; cin >> n; // 读取每张地毯的信息 for (int i = 1; i <= n; i++) { cin >> carpets[i].a >> carpets[i].b >> carpets[i].g >> carpets[i].k; } int x, y; cin >> x >> y; int ans = -1; // 从后往前遍历地毯,找到最上面覆盖该点的地毯 for (int i = n; i >= 1; i--) { // 判断点(x, y)是否在第i张地毯内 if (x >= carpets[i].a && x <= carpets[i].a + carpets[i].g && y >= carpets[i].b && y <= carpets[i].b + carpets[i].k) { ans = i; break; } } cout << ans << endl; return 0; } ``` ### 代码解释 1. **结构体定义**:`Carpet` 结构体用于存储每张地毯的信息,包含左下角坐标 `a` 和 `b`,以及在 `x` 轴和 `y` 轴方向的长度 `g` 和 `k`。 2. **读取输入**:首先读取地毯的数量 `n`,然后循环读取每张地毯的信息并存储在 `carpets` 数组中。最后读取要查询的点的坐标 `(x, y)`。 3. **查找最上面的地毯**:从最后一张地毯开始向前遍历,判断点 `(x, y)` 是否在当前地毯的范围内。如果在范围内,则将该地毯的编号赋值给 `ans` 并跳出循环。 4. **输出结果**:如果 `ans` 仍然为 `-1`,表示该点没有被任何地毯覆盖,输出 `-1`;否则输出 `ans`。 ######[AI问答 | 522点数解答 | 2026-02-27 18:04:41]
- Python 实现赛车手积分排名:从数据到清晰榜单(字节豆包 | 182点数解答 | 2024-10-20 16:16:44)271
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)330
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)298
- Python匈牙利算法:求解二分图最大匹配边数(含代码及详细解析)(字节豆包 | 715点数解答 | 2025-12-12 18:44:19)41
- 二分图最大匹配边数求解:从输入到代码实现全解析(字节豆包 | 275点数解答 | 2025-12-13 21:24:15)40
- Linux开发:用find命令查找/usr目录下超1MB的文件(百度文心 | 153点数解答 | 2023-11-09 18:45:10)198
- 8 个实用命令,助 Linux 开发者轻松查找服务器平均负载!(百度文心 | 311点数解答 | 2023-11-09 18:47:10)215
- C++实现顺序存储结构基本操作:初始化、插入、删除等全解析(GPT | 1743点数解答 | 2024-09-26 00:20:17)271
- C 语言实现:精准查找比特流中的同步码(字节豆包 | 336点数解答 | 2024-11-14 22:45:41)132
- C语言实现多班级学生信息管理系统:含增删改查与多样排序功能(GPT | 2547点数解答 | 2024-12-15 22:08:58)351
- C语言实现学生信息管理系统:含增删改查与多种排序功能(GPT | 6408点数解答 | 2024-12-15 22:10:03)336
- Python 实现多功能手机通讯录:添加、查看、删除、修改、查找全搞定!(字节豆包 | 1030点数解答 | 2025-06-05 15:47:56)231