RMQ算法代码
来源:互联网 发布:围棋少年 知乎 编辑:程序博客网 时间:2024/06/08 04:54
#include <iostream>#include <cmath>#define maxn 10005using namespace std;int maxsum[maxn][20], minsum[maxn][20];void RMQ(int num) //预处理->O(nlogn) { int i, j; for(j = 1; j < 20; ++j) for(i = 1; i <= num; ++i) if(i + (1 << j) -1 <= num) { maxsum[i][j] = max(maxsum[i][j-1], maxsum[i+(1 << j)][j-1]); minsum[i][j] = min(minsum[i][j-1], minsum[i+(1 << j)][j-1]); }}int main(){ int i, j, num, t, query; cin >> t; while(t--) { cin >> num >> query; for(i = 0; i < num; i++) { cin >> maxsum[i][0]; minsum[i][0] = maxsum[i][0]; } RMQ(num); int start, end, maxl, minl; while(query--) //o(1) 查询 { cin >> start >> end; int k = (int)((log(end-start+1))/log(2.0)); maxl = max(maxsum[start][k], maxsum[end-(1 << k)+1][k]); minl = min(minsum[start][k], minsum[end-(1 << k)+1][k]); cout << maxl << minl << endl; } } return 0;}
1 0
- RMQ算法代码
- 【RMQ】RMQ算法
- RMQ代码
- RMQ算法
- RMQ算法
- RMQ算法
- RMQ算法
- RMQ算法
- RMQ算法
- RMQ算法
- RMQ算法
- RMQ算法
- rmq算法
- RMQ算法
- RMQ算法
- RMQ算法
- RMQ算法
- RMQ算法
- 笔试基础归纳-8.17(一)
- redis的java客户端jedis(二)jedis基本操作
- Ubantu SSH安装
- HTML5 视频直播那些事儿+吕小鸣博客
- 前端知识之标签的使用一
- RMQ算法代码
- 注解配置MySQL数据库表uuid主键
- JS缓冲运动
- 算法学习————LCA问题的Tarjan算法
- 我的iphone不能被虚拟机识别怎么办
- Validate Binary Search Tree leetcode
- java web.xml记载顺序分析
- httpclient 4.X 异步 async util
- 拓扑排序 详解