
ST表
ssl_fuyang
ヾ(◍°∇°◍)ノ゙
展开
-
[HDU]Glad You Came【ST表】
>Linkhdu 6356>Description一个长度为 nnn,初始全部值都为 0 的数组给出 mmm 次操作,每次操作把 [l,r][l,r][l,r] 内所有小于 xxx 的数修改成 xxx求出最终的数组n≤5∗105,m≤5∗107n\le 5*10^5,m\le5*10^7n≤5∗105,m≤5∗107>解题思路看到 mmm 的大小,O(mlogn)O(mlogn)O(mlogn)是会TLE的用ST表,把每次修改的区间 [l,r][l,r][l,r] 分原创 2021-11-17 11:55:31 · 826 阅读 · 0 评论 -
No Time to Dry【ST表】【树状数组】
>Linkluogu P7416jzoj7232>Description>解题思路赛时打的暴力单调栈20分QAQ观察一个区间[l,r][l,r][l,r],最多的步骤为r−l+1r-l+1r−l+1,如果有cntcntcnt步可以不做,最少的步骤就为r−l+1−cntr-l+1-cntr−l+1−cnt怎么样的步数可以合并?单调栈的思路,如果当前的数字aia_iai,与上一次出现的位置之间,没有小于aia_iai的数字,那当前的位置的步骤就可以与上一次出现的位置原创 2021-08-17 07:53:23 · 147 阅读 · 0 评论 -
静态区间 / gcd区间【ST表】
>Linkybtoj静态区间luogu P1890>解题思路其实就是ST表的模板套上一个gcd就行了算了一下时间复杂度,大概O(nlognlogai)O(nlognloga_i)O(nlognlogai)(?)差不多可以过的>代码#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define N 50010usin原创 2021-07-06 08:47:10 · 319 阅读 · 0 评论 -
数列区间【ST表】【模板】
>Linkybtoj数列区间luogu P3865>解题思路“也就是说,RMQRMQRMQ问题是指求区间最值的问题”——360百科ST表运用的倍增思想,fi,jf_{i,j}fi,j表示第iii个数往后2j2^j2j个数这个区间要求的值,所以说需要预处理logloglog值ST表构建时间复杂度为O(nlogn)O(nlogn)O(nlogn),查询为O(1)O(1)O(1),但不支持修改>代码#include <iostream>#include <原创 2021-07-06 08:30:31 · 179 阅读 · 0 评论 -
jzoj栈【ST表】【模拟】
>Description>Input>Output>Sample Input51 4 3 5 2>Sample Output1 2 4 3 5>解题思路用三个指针 l、r、keyl 指向a数组,位置l~ r表示是已经入了栈的,keyl~n是等待入栈的数。a数组不用进行预先处理,l为栈底,r为栈顶。每次要存入一个数到b数组(答案里...原创 2019-08-09 20:56:42 · 213 阅读 · 0 评论