ST表 RMQ问题
文章平均质量分 58
ssllyr
锦瑟无端五十弦,一弦一柱思华年。
展开
-
【gzoj3646】Frequent values【RMQ】
RMQ原创 2022-08-21 08:03:12 · 108 阅读 · 0 评论 -
【ROI2018】抄本【RMQ,分治,单调栈】
ST表,RMQ原创 2022-08-20 08:11:59 · 120 阅读 · 0 评论 -
【ybtoj 4.3 RMQ课堂过关】D. 矩阵最值【二维ST表】
题目链接:矩阵最值 分析 二维ST表模板题。一维扩展一下就可。 上代码 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; int n,m,q; int a[300][300],f[300][300][20][20]; void prest() { for(int i=1;i<=n;i++) { for(in.原创 2021-08-09 10:53:39 · 82 阅读 · 0 评论 -
【ybtoj 4.3 RMQ课堂过关】C.与众不同【st表】【二分】
RMQ原创 2021-08-08 21:39:40 · 114 阅读 · 0 评论 -
【ybtoj 4.3 RMQ课堂过关】B.静态区间【RMQ】
题目链接:静态区间 分析 其实跟数列区间这题是一样的,只需要把预处理的最值改成gcd就可以。 上代码 #include<iostream> #include<cstdio> using namespace std; int n,a[50001],m,lg[50001],f[100001][20]; int gcd(int x,int y) { if(x%y==0) return y; else return gcd(y,x%y); } int main() { cin&.原创 2021-08-08 21:26:25 · 67 阅读 · 0 评论 -
【ybtoj 4.3 RMQ课堂过关】A.数列区间【RMQ模板】
题目链接:数列区间 分析 RMQ模板。 st表预处理出i−i+2ji-i+2^ji−i+2j的最大值,然后设k=log2(x−y+1)k=log2(x-y+1)k=log2(x−y+1) 最后输出查询两段长为2k的序列最值(可以重叠) 上代码 cin什么东西啊真是lj #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; in.原创 2021-08-08 21:10:00 · 77 阅读 · 0 评论 -
【洛谷P3865】ST表【模板】【RMQ问题】
输入输出样例 输入 #1 5 5 4 3 1 2 4 5 1 1 4 2 4 3 2 3 5 1 2 4 5 输出 #1 4 4 1 4 4 分析 ST表: 我们设f[i][j]f[i][j]f[i][j]表示以i为左端点,长度为2^j的区间的最小值(最大值等)。 以最小值为例,显然可以有递推式 f[i][j]=a[i](j=0)f[i][j]=a[i] (j=0)f[i][j]=a[i](j=0) f[i][j]=m(f[i][j−1],f[i+2(j−1)][j−1])(j>0)f[i][j.原创 2020-08-22 16:30:04 · 150 阅读 · 0 评论