酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

归零者伤势查询系统:暴力RMQ区间最大值C++实现

这是一个典型的RMQ(Range Maximum Query)问题。当数据范围较小(n<100)时,可以简单使用暴力遍历来实现。下面是C++代码实现: ```cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n, q; cin >> n >> q; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < q; i++) { int L, R; cin >> L >> R; // 注意:题目中的L和R是从1开始计数的,转换为0索引需要减1 int maxVal = a[L - 1]; for (int j = L - 1; j < R; j++) { maxVal = max(maxVal, a[j]); } cout << maxVal << endl; } return 0; } ``` ### 关键点说明 - 数组索引从0开始,题目输入的L和R从1开始,需要做转换 - 每次询问时遍历区间[L-1, R-1]找出最大值 - 使用`<algorithm>`库中的`max()`函数比较大小 ### 复杂度分析 - 🕐 时间复杂度:O(n×q),最坏情况下为100×100=10000次操作 - 💾 空间复杂度:O(n),只需存储n个人的伤势数据 ######[AI问答 | 349点数解答 | 2026-06-21 19:18:12]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]