题目


分析

考虑答案应该是一段单调不下降的序列,

考虑预处理出每个点往后第一个大于这个点的位置,

那么答案应该是左端点到区间内最大的位置以及这个位置到右端点的贡献

那么区间最大的位置可以用ST表做,然后前面的贡献用后缀和,

后面的贡献也就似乎这个位置的值乘上后面的长度,记得开long long


代码

#include <cstdio>
#include <cctype>
#include <stack>
#define rr register
using namespace std;
const int N=500011; typedef long long lll; stack<int>stac;
int n,m,two[19],lg[N],a[N],f[N][19],fa[N]; lll s[N];
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline void print(lll ans){
if (ans>9) print(ans/10);
putchar(ans%10+48);
}
signed main(){
n=iut(),m=iut(),two[0]=1,lg[0]=-1;
a[n+1]=2e9,stac.push(n+1),fa[n+1]=n+1;
for (rr int i=1;i<19;++i) two[i]=two[i-1]<<1;
for (rr int i=1;i<=n;++i) a[i]=iut(),lg[i]=lg[i>>1]+1;
for (rr int i=n;i;--i){
while (a[i]>=a[stac.top()]) stac.pop();
fa[i]=stac.top(),stac.push(i);
}
for (rr int i=n;i;--i) s[i]=s[fa[i]]+1ll*(fa[i]-i)*a[i];
for (rr int i=1;i<=n;++i) f[i][0]=i;
for (rr int j=1;j<19;++j)
for (rr int i=1;i+two[j]-1<=n;++i){
rr int z1=f[i][j-1],z2=f[i+two[j-1]][j-1];
if (a[z1]<a[z2]) f[i][j]=z2; else f[i][j]=z1;
}
rr lll lans=0;
for (rr int i=1;i<=m;++i,putchar(10)){
rr int l=(iut()^lans)%n+1,r=l+(iut()^(lans+1))%(n-l+1);
rr int now,z=lg[r-l+1],z1=f[l][z],z2=f[r-two[z]+1][z];
if (a[z1]<a[z2]) now=z2; else now=z1;
print(lans=s[l]-s[now]+1ll*a[now]*(r-now+1));
}
return 0;
}

#ST表,单调栈#洛谷 5648 Mivik的神力的更多相关文章

  1. [多校联考2019(Round 4 T2)][51nod 1288]汽油补给(ST表+单调栈)

    [51nod 1288]汽油补给(ST表+单调栈) 题面 有(N+1)个城市,0是起点N是终点,开车从0 -> 1 - > 2...... -> N,车每走1个单位距离消耗1个单位的 ...

  2. 【BZOJ-3956】Count ST表 + 单调栈

    3956: Count Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 173  Solved: 99[Submit][Status][Discuss] ...

  3. 【题解】 bzoj3956: Count (ST表+单调栈)

    题面 Solution 看了一点点题解,自己又刚了\(2h30min\),刚了出来qwq,我好菜啊qwq 貌似这道题是BZOJ 4826的弱化,弱化都不会qwq凉凉 Solution 首先你可以考虑, ...

  4. BZOJ4540 [Hnoi2016]序列 【莫队 + ST表 + 单调栈】

    题目 给定长度为n的序列:a1,a2,-,an,记为a[1:n].类似地,a[l:r](1≤l≤r≤N)是指序列:al,al+1,-,ar- 1,ar.若1≤l≤s≤t≤r≤n,则称a[s:t]是a[ ...

  5. 【BZOJ3611】[Heoi2014]大工程 欧拉序+ST表+单调栈

    [BZOJ3611][Heoi2014]大工程 Description 国家有一个大工程,要给一个非常大的交通网络里建一些新的通道.  我们这个国家位置非常特殊,可以看成是一个单位边权的树,城市位于顶 ...

  6. BZOJ 4453: cys就是要拿英魂![后缀数组 ST表 单调栈类似物]

    4453: cys就是要拿英魂! Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 90  Solved: 46[Submit][Status][Discu ...

  7. 单调栈 && 洛谷 P2866 [USACO06NOV]糟糕的一天Bad Hair Day(单调栈)

    传送门 这是一道典型的单调栈. 题意理解 先来理解一下题意(原文翻译得有点问题). 其实就是求对于序列中的每一个数i,求出i到它右边第一个大于i的数之间的数字个数c[i].最后求出和. 首先可以暴力求 ...

  8. bzoj千题计划313:bzoj3879: SvT(后缀数组+st表+单调栈)

    https://www.lydsy.com/JudgeOnline/problem.php?id=3879 把所有的后缀取出,按rank排序 求出相邻两个后缀的lcp 每个后缀对答案的贡献就是 与在它 ...

  9. bzoj千题计划314:bzoj3238: [Ahoi2013]差异(后缀数组+st表+单调栈)

    https://www.lydsy.com/JudgeOnline/problem.php?id=3238 跟 bzoj3879 差不多 #include<cstdio> #include ...

  10. P1823 [COI2007] Patrik 音乐会的等待 单调栈 洛谷luogu

    题目描述 N个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人.队列中任意两个人A和B,如果他们是相邻或他们之间没有人比A或B高,那么他们是可以互相看得见的. ...

随机推荐

  1. h5页面在微信打开,ios底部存在返回横条的问题

    我的问题比较简单,一个处理链接的页面,二次跳转进入真正的页面,导致ios出现返回横条,点击后退回到了处理链接页面.因为这个后退不会重新加载,导致一直处在处理链接的这个空页面. 所以我用replace代 ...

  2. 2-Django之三板斧

    HttpResponse 返回字符串类型的数据 HttpResponse: 这是 Django 自带的类,用于构建基本的 HTTP 响应 我的app名称是demo,我们先按照正常的流程,在views中 ...

  3. 关于“非法的前向引用(illegal forward reference)”的探究

    1.问题: 有如下代码: public class Test { static { i = 0;// 给变量赋值可以正常编译通过 System.out.print(i);// 编译器会提示" ...

  4. get 加 header 下载文件 函数,虽然最后没用。

    export const apiDown = (url, data = {}) => { let data2 = secretFilter(data) axiosDown({ url, para ...

  5. docsify + GitHub Page免费搭建个人博客

    docsify生成文档 docsify是一个动态生成文档网站的工具.通过编辑MarkDown文件就能实现简约清爽的文档页面. 先在Github创建项目 创建项目成功后,把项目克隆到本地(以自己的实际地 ...

  6. 解决linux平台无法使用getch()的问题

    参考https://www.cnblogs.com/jiangxinnju/p/5516906.html#:~:text=%E5%8F%A6%E5%A4%96%E5%A4%A7%E5%AE%B6%E5 ...

  7. Python使用os模块创建带时间戳的文件夹

    直接上源码: # 导入os模块 import os import time # 创建文件夹函数 def mkdir(path): # os.path.exists 函数判断文件夹是否存在 folder ...

  8. 基于ads1292的心率呼吸信号检测解决方案开发阶段总结

    前记 在医疗可穿戴领域,ads1292是一个无法绕过去的存在.今年几个项目产品都和这个芯片有关系. 从不了解到熟悉,算是踩了不少坑吧.对每次的项目进行复盘,是我这些年养成的最好的习惯了. ads129 ...

  9. day03-分析SpringBoot底层机制

    分析SpringBoot底层机制 Tomcat启动分析,Spring容器初始化,Tomcat如何关联Spring容器? 1.创建SpringBoot环境 (1)创建Maven程序,创建SpringBo ...

  10. XMLSpringEclipseWebCache

    XMLSpringEclipseWebCache XMLSpy编辑工具中如何设置XML的DTD/XSD校验指向本地,而不要直接指向网络去? 前提:在不修改XML的条件下,修改XML的,不要这个,这个变 ...