zoukankan      html  css  js  c++  java
  • RMQ 数据结构

    RMQ 常用的数据结构之一

    直接上代码 马克好来 是个好板子

     1 #include <stdio.h>
     2 #define min(a,b) a<b ? a : b
     3 
     4 int arr[10005],d[10005][100];
     5 void RMQ(int n)
     6 {
     7     for(int i=0; i<n; i++) d[i][0]=arr[i];
     8     for(int j=1; (1<<j)<=n; j++)
     9         for(int i=0; i+(1<<j)-1<n; i++)
    10             d[i][j] = min(d[i][j-1],d[i+(1<<(j-1))][j-1]);
    11 }
    12 int SRMQ(int l,int r)
    13 {
    14     int k=0;
    15     while((1<<(k+1)) <= r-l+1) k++;
    16     return min(d[l][k],d[r-(1<<k)+1][k]);
    17 }
    18 int main()
    19 {
    20     int n,q,l,r;
    21     while(~scanf("%d",&n))
    22     {
    23         for(int i=0; i<n; i++)
    24             scanf("%d",arr+i);
    25         RMQ(n);
    26         scanf("%d",&q);
    27         while(q--)
    28         {
    29             scanf("%d%d",&l,&r);
    30             printf("%d
    ",SRMQ(l,r));
    31         }
    32     }
    33     return 0;
    34 }
  • 相关阅读:
    Scala-函数
    Scala--循环
    scala(一)
    拦截器filter
    Ajax实现分页二
    并发1
    泛型
    协议protocol
    结构体structure
    类的继承
  • 原文地址:https://www.cnblogs.com/max88888888/p/5998315.html
Copyright © 2011-2022 走看看