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. }  

     

  • 相关阅读:
    Python网页信息采集:使用PhantomJS采集淘宝天猫商品内容
    让Scrapy的Spider更通用
    API例子:用Python驱动Firefox采集网页数据
    API例子:用Java/JavaScript下载内容提取器
    Python即时网络爬虫:API说明
    Python: xml转json
    git 更新本地代码
    数据库事务
    Python的线程、进程和协程
    Java基础语法
  • 原文地址:https://www.cnblogs.com/lyqlyq/p/6883128.html
Copyright © 2011-2022 走看看