<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【題解】Luogu P10173 「OICon-02」maxiMINImax

      容易發(fā)現(xiàn)相交的區(qū)間是不會(huì)產(chǎn)生貢獻(xiàn)的。于是不用考慮這個(gè)限制。

      用單調(diào)棧可以求出以 \(a_i\) 為最小值和最大值的區(qū)間個(gè)數(shù) \(qmn_i\)\(qmx_i\)

      從小到大枚舉第二個(gè)區(qū)間的最小值,記 \(p_i\) 表示 \(i\) 的位置,則對(duì)于 \(i\) 的答案即為:

      \[\sum_{j=1}^{p_i-1}\sum_{k=p_i+1}^{n}{qmn_{p_i}qmx_jqmx_k(i-a_j)(i-a_k)} \]

      簡(jiǎn)單推式子后得到:

      \( qmn_{p_i}(\sum{qmx_j}\sum{qmx_k}i^2-\sum{qmx_ja_j}\sum{qmx_k}i-\sum{qmx_j}\sum{qmx_ka_k}i+\sum{qmx_ja_j}\sum{qmx_ka_k}) \)

      于是開(kāi)兩棵樹(shù)狀數(shù)組維護(hù) \(qmx_j\)\(qmx_ja_j\) 就好了。時(shí)間復(fù)雜度 \(O(n\log n)\)

      #include<bits/stdc++.h>
      #define ll long long
      #define il inline
      
      using namespace std;
      namespace asbt{
      namespace cplx{bool begin;}
      const int maxn=1e6+5,mod=9712176;
      int n,a[maxn],p[maxn],zhan[maxn];
      int lmn[maxn],rmn[maxn];
      int lmx[maxn],rmx[maxn];
      int qmn[maxn],qmx[maxn];
      struct{
      	int tr[maxn];
      	il int lowbit(int x){
      		return x&-x;
      	}
      	il void upd(int p,int v){
      		for(;p<=n;p+=lowbit(p)){
      			(tr[p]+=v)%=mod;
      		}
      	}
      	il int query(int p){
      		int res=0;
      		for(;p;p-=lowbit(p)){
      			(res+=tr[p])%=mod;
      		}
      		return res;
      	}
      	il int query(int l,int r){
      		return (query(r)-query(l-1)+mod)%mod;
      	}
      }F1,F2;
      namespace cplx{
      	bool end;
      	il double usdmem(){return (&begin-&end)/1048576.0;}
      }
      int main(){
      	ios::sync_with_stdio(0),cin.tie(0);
      	cin>>n;
      	for(int i=1;i<=n;i++){
      		cin>>a[i];
      		p[a[i]]=i;
      	}
      	for(int i=1,top=0;i<=n;i++){
      		while(top&&a[zhan[top]]>a[i]){
      			top--;
      		}
      		lmn[i]=zhan[top];
      		zhan[++top]=i;
      	}
      	for(int i=1,top=0;i<=n;i++){
      		while(top&&a[zhan[top]]<a[i]){
      			top--;
      		}
      		lmx[i]=zhan[top];
      		zhan[++top]=i;
      	}
      	zhan[0]=n+1;
      	for(int i=n,top=0;i;i--){
      		while(top&&a[zhan[top]]>a[i]){
      			top--;
      		}
      		rmn[i]=zhan[top];
      		zhan[++top]=i;
      	}
      	for(int i=n,top=0;i;i--){
      		while(top&&a[zhan[top]]<a[i]){
      			top--;
      		}
      		rmx[i]=zhan[top];
      		zhan[++top]=i;
      	}
      	for(int i=1;i<=n;i++){
      		qmn[i]=(i-lmn[i])*1ll*(rmn[i]-i)%mod;
      		qmx[i]=(i-lmx[i])*1ll*(rmx[i]-i)%mod;
      	}
      	int ans=0;
      	for(int i=1,xj,xaj,xk,xak;i<=n;i++){
      		xj=F1.query(1,p[i]-1);
      		xaj=F2.query(1,p[i]-1);
      		xk=F1.query(p[i]+1,n);
      		xak=F2.query(p[i]+1,n);
      		(ans+=qmn[p[i]]*1ll*(xj*1ll*xk%mod*i%mod*i%mod-xaj*1ll*xk%mod*i%mod-xj*1ll*xak%mod*i%mod+xaj*1ll*xak%mod)%mod)%=mod;
      		(ans+=mod)%=mod;
      		F1.upd(p[i],qmx[p[i]]);
      		F2.upd(p[i],qmx[p[i]]*1ll*i%mod);
      	}
      	cout<<ans;
      	return 0;
      }
      }
      int main(){return asbt::main();}
      
      posted @ 2025-02-05 17:47  zhangxy__hp  閱讀(28)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 中国熟妇毛多多裸交视频| 日韩国产中文字幕精品| 777奇米四色成人影视色区| 欧美黑人乱大交| 亚洲成人高清av在线| 熟女精品视频一区二区三区| 麻豆精品一区二区视频在线| 国产一区二区三区av在线无码观看| 白嫩少妇bbw撒尿视频| av鲁丝一区鲁丝二区鲁丝三区| 国产一区二区一卡二卡| 少妇人妻综合久久中文字幕| 国产精品毛片一区二区| 久久er99热精品一区二区| 四虎国产精品成人免费久久| 奶头好大揉着好爽视频| 国产成年码av片在线观看 | 国产色a在线观看| 欧美老少配性行为| 深夜福利视频在线播放| 激情的视频一区二区三区| 久久亚洲精品情侣| 私人毛片免费高清影视院| 日韩人妻一区中文字幕| 国产区免费精品视频| 国产成人亚洲无码淙合青草| 成人资源网亚洲精品在线| 中国老熟女重囗味hdxx| 国产高清精品在线91| 国产成人精品一区二区无| 国产精品美女一区二区三| 国产精品七七在线播放| 国产中文一区卡二区不卡| 免费看国产精品3a黄的视频| 日韩大片高清播放器| 亚洲一区二区三成人精品| 97久久久亚洲综合久久| 人妻在线无码一区二区三区| 亚洲精中文字幕二区三区| 性色欲情网站| 日韩av一区二区高清不卡|