zoukankan      html  css  js  c++  java
  • rmq RMQ

    http://blog.csdn.net/cnyali/article/details/52228846

    1. #include <iostream>  
    2. #include <cmath>  
    3. #define maxn 10005  
    4. using namespace std;  
    5. int maxsum[maxn][20], minsum[maxn][20];  
    6.   
    7. void RMQ(int num)    //预处理->O(nlogn)    
    8. {  
    9.     int i, j;  
    10.     for(j = 1; j < 20; ++j)  
    11.       for(i = 1; i <= num; ++i)  
    12.       if(i + (1 << j) -1 <= num)  
    13.       {  
    14.           maxsum[i][j] = max(maxsum[i][j-1], maxsum[i+(1 << j)][j-1]);  
    15.           minsum[i][j] = min(minsum[i][j-1], minsum[i+(1 << j)][j-1]);  
    16.         }  
    17. }  
    18.   
    19. int main()  
    20. {  
    21.     int i, j, num, t, query;  
    22.     cin >> t;  
    23.     while(t--)  
    24.     {  
    25.         cin >> num >> query;  
    26.         for(i = 0; i < num; i++)  
    27.         {  
    28.             cin >> maxsum[i][0];  
    29.             minsum[i][0] = maxsum[i][0];  
    30.         }  
    31.         RMQ(num);  
    32.         int start, end, maxl, minl;  
    33.         while(query--) //o(1) 查询   
    34.         {  
    35.             cin >> start >> end;  
    36.             int k = (int)((log(end-start+1))/log(2.0));  
    37.             maxl = max(maxsum[start][k], maxsum[end-(1 << k)+1][k]);  
    38.             minl = min(minsum[start][k], minsum[end-(1 << k)+1][k]);  
    39.             cout << maxl << minl << endl;  
    40.         }  
    41.     }  
    42.     return 0;  
    43. }  

     

  • 相关阅读:
    发送带有正文以及附件的邮件
    软件测试笔记
    java开发 中台
    postman测试带有json数据格式的字段
    maven详解之仓库
    Maven与nexus关系
    占位
    Vue项目碰到"‘webpack-dev-server’不是内部或外部命令,也不是可运行的程序或批处理文件"报错
    了解facade设计模式
    postman使用
  • 原文地址:https://www.cnblogs.com/lyqlyq/p/6883128.html
Copyright © 2011-2022 走看看