日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JZOJ 5618. 【NOI2018模拟3.31】华胥梦天

發布時間:2025/3/15 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JZOJ 5618. 【NOI2018模拟3.31】华胥梦天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

Input

Output

Data Constraint

Solution

  • 吉如一論文里的線段樹算法……

  • 對于一個區間,記錄三個值:最大值 mx1,最大值的個數 cnt,嚴格次大值 mx2。

  • 那么在一個區間內要修改為 x ,

  • 如果有 xmx1 ,就不用修改,直接退出。

  • 如果有 mx2x<mx1 ,則區間和 sum?=(mx1?x)?cnt ,再 mx1=x 即可。

  • 如果 x<mx2 ,則直接遞歸左右子樹。

  • 記得下傳標記,要隨時維護嚴格次大值。

  • 時間復雜度通過勢能分析可得為 O(N?log?N)

Code

#include<cstdio> #include<cctype> using namespace std; typedef long long LL; const int N=5e5+5; struct data {int mx1,cnt,mx2;LL sum; }f[N<<2]; LL last; int qx,qy,qz; int a[N]; template<typename T>inline T read() {T X=0,w=0; char ch=0;while(!isdigit(ch)) w|=ch=='-',ch=getchar();while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();return w?-X:X; } inline int max(int x,int y) {return x>y?x:y; } inline void update(int v) {int ls=v<<1,rs=ls|1;if(f[ls].mx1>f[rs].mx1){f[v].mx1=f[ls].mx1;f[v].cnt=f[ls].cnt;f[v].mx2=max(f[ls].mx2,f[rs].mx1);}elseif(f[ls].mx1<f[rs].mx1){f[v].mx1=f[rs].mx1;f[v].cnt=f[rs].cnt;f[v].mx2=max(f[rs].mx2,f[ls].mx1);}else{f[v].mx1=f[ls].mx1;f[v].cnt=f[ls].cnt+f[rs].cnt;f[v].mx2=max(f[ls].mx2,f[rs].mx2);}f[v].sum=f[ls].sum+f[rs].sum; } inline void modify(int v,int x) {if(x>=f[v].mx1) return;f[v].sum-=(LL)(f[v].mx1-x)*f[v].cnt;f[v].mx1=x; } inline void down(int v) {modify(v<<1,f[v].mx1);modify(v<<1|1,f[v].mx1); } void make(int v,int l,int r) {if(l==r){f[v].sum=f[v].mx1=a[l];f[v].cnt=1,f[v].mx2=-1;return;}int mid=l+r>>1;make(v<<1,l,mid);make(v<<1|1,mid+1,r);update(v); } void change(int v,int l,int r) {if(qz>=f[v].mx1) return;if(qx<=l && r<=qy && qz>f[v].mx2){modify(v,qz);return;}down(v);int mid=l+r>>1;if(qx<=mid) change(v<<1,l,mid);if(qy>mid) change(v<<1|1,mid+1,r);update(v); } LL find(int v,int l,int r) {if(qx<=l && r<=qy) return f[v].sum;int mid=l+r>>1;down(v);LL s=0;if(qx<=mid) s+=find(v<<1,l,mid);if(qy>mid) s+=find(v<<1|1,mid+1,r);update(v);return s; } int main() {int n=read<int>(),m=read<int>();for(int i=1;i<=n;i++) a[i]=read<int>();make(1,1,n);while(m--){int op=read<int>();qx=read<LL>()^last;qy=read<LL>()^last;if(op==1){int x=qy;qy=qx;int num=find(1,1,n);qz=max(num-x,0);change(1,1,n);}elseif(op==2){qz=read<LL>()^last;change(1,1,n);}else printf("%lld\n",last=find(1,1,n));}return 0; }

總結

以上是生活随笔為你收集整理的JZOJ 5618. 【NOI2018模拟3.31】华胥梦天的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区三区四区日韩 | 男男gay做受xx| 久久99亚洲精品 | 久久国产毛片 | 成人在线播放网站 | 日韩美女做爰高潮免费 | wwwxxxx在线观看 | 国产一区二区三区四区精 | 97在线视频免费观看 | av亚洲在线观看 | 四虎影视永久地址 | 蜜臀av粉嫩av懂色av | 经典三级av在线 | 国产中文字幕二区 | 五月99久久婷婷国产综合亚洲 | 国产 第1190页 | 麻豆成人91精品二区三区 | 国产精品无码午夜福利 | www..com色 | 91在线国产观看 | 韩国三级hd中文字幕 | 亚洲另类在线观看 | 欧美大肥婆大肥bbbbb | 男男一级淫片免费播放 | 日韩av在线免费观看 | 亚洲国产精品久久久久爰色欲 | 91中文字幕在线观看 | 亚洲第一精品在线观看 | 五月激情天 | 曰本无码人妻丰满熟妇啪啪 | 91精品久久香蕉国产线看观看 | 欲色影音 | 粉嫩av一区二区夜夜嗨 | 欧美日韩啪啪 | 久久大综合 | 免费成人美女在线观看 | 春闺艳妇(h)高h产乳 | 亚洲欧美色图片 | 色综合图片区 | 国产精品网站在线观看 | 久久国产精品网 | 精品人妻一区二区三区免费 | 相亲对象是问题学生动漫免费观看 | 成年人在线免费观看网站 | 韩国av一区二区 | 深夜福利视频网站 | 免费看大片a | 成年人免费黄色 | 日日躁夜夜躁狠狠躁 | 久久久久久av无码免费网站下载 | 97人人干| 国产精品久久久久久久久久久不卡 | 天堂在线资源库 | 日韩成年人视频 | 国产91清纯白嫩初高中在线观看 | 欧美激情国产精品 | 亚洲精品tv | 国产精品色悠悠 | 神马久久久久久久久久久 | 羞羞涩涩视频 | 肉大捧一进一出免费视频 | 亚洲一区二区精品在线 | 在线观看日韩中文字幕 | 中国一级特黄录像播放 | 可以免费观看的毛片 | 都市激情 亚洲 | 巨大乳の揉んで乳榨り奶水 | 欧美视频一区二区三区四区在线观看 | 国产99久久 | 手机看片久久久 | 欧美日韩一区二区三区在线观看 | 伊人网站在线观看 | 欧美午夜久久久 | jizzjizz日本免费视频 | 人与动物2免费观看完整版电影高清 | 蜜桃视频污 | 四虎8848精品成人免费网站 | 国产伦精品一区二区三区 | 亚洲国产精品麻豆 | 久久午夜夜伦鲁鲁片 | 一区二区不卡免费视频 | 国内自拍偷拍视频 | 青春草av| 国产一级片在线播放 | 成年人av| 国产一区免费 | 国产视频精品自拍 | 狠狠人妻久久久久久综合麻豆 | 亚洲两性| 黄色小视频入口 | 国产午夜手机精彩视频 | 欧美激精品 | 国产一区二区三区四 | av一区在线 | 成人高潮片免费视频 | 欧洲黄色录像 | 成人a级免费视频 | 免费在线一级片 | 精品国产91乱码一区二区三区 |