zoukankan      html  css  js  c++  java
  • RMQ、ST表

    ST表

    ( ext{ST}) 表是用于解决可重复贡献问题的数据结构。

    • 可重复贡献问题:区间按位和、区间按位或、区间 (gcd) 、区间最大、区间最小等满足结合律且可重复统计的问题。

    模板预处理:(以区间最大值为例)

    void pre_work()
    {
    	 for(int i=2;i<=n;i++) lg2[i]=lg2[i/2]+1;
    	 pow2[0]=1;
    	 for(int i=1;i<=lg2[n];i++) pow2[i]=pow2[i-1]*2;
    	 for(int i=1;i<=n;i++) st[0][i]=val[i];
    	 for(int i=1;i<=lg2[n];i++)
    		 for(int j=1;j<=n+1-pow2[i];j++)
    		 	 st[i][j]=max(st[i-1][j],st[i-1][j+pow2[i-1]]);
    }
    int query(int l,int r)
    {
    	 int p=lg2[r-l+1];
    	 return max(st[p][l],st[p][r+1-powr[p]]);
    }
    

    RMQ

  • 相关阅读:
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    12.20++对王建民老师的评价+个人期末总结
    12.19
    12.18
    12.17
    12.16
  • 原文地址:https://www.cnblogs.com/EricQian/p/15091650.html
Copyright © 2011-2022 走看看