zoukankan      html  css  js  c++  java
  • [模板]RMQ(冲刺准备中)

    洛谷P3865

    注意:位运算一定要加括号!因为他的优先级没有加减法高;

       注意在预处理的时候判断的是前一个区间是否完整,故 i+(1<<(j-1))-1<=n;

       取logn时最好多加一位,以保漏掉数字

        与LCA要分清!

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define man 100010
     4 inline int read()
     5 {
     6     int s=0,f=1;char c=getchar();
     7     while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
     8     while(c>='0'&&c<='9'){s=s*10+c-'0';c=getchar();}
     9     return s*f;
    10 }
    11 int f[man][30],logn;
    12 int n,m;
    13 inline int rmq(int x,int y)
    14 {    int k=(int)(log(y-x+1.0)/log(2.0));
    15     return max(f[x][k],f[y-(1<<k)+1][k]);
    16     }
    17 int main()
    18 {    n=read();m=read();
    19     for(int i=1;i<=n;i++)
    20         f[i][0]=read();
    21     logn=(int)(log(n)/log(2.0))+1;
    22     for(int j=1;j<=logn;j++)
    23         for(int i=1;i<=n;i++)
    24                if(i+(1<<(j-1))-1<=n)
    25                  f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]);
    26     for(int i=1;i<=m;i++)
    27     {    int x,y;
    28         x=read();y=read();
    29         printf("%d
    ",rmq(x,y));
    30         }
    31     return 0;
    32     }
  • 相关阅读:
    Action返回类型
    低成本FPGA中实现动态相位调整
    SERDES高速系统(二)
    SERDES高速系统(一)
    Avalon总线概述
    FPGA热设计
    功耗的挑战
    特性阻抗介绍
    低阻抗电源分配系统
    非理想回路信号衰减
  • 原文地址:https://www.cnblogs.com/Slager-Z/p/7769284.html
Copyright © 2011-2022 走看看