- 题解
partrik
- 2023-2-22 19:36:57 @
#include<bits/stdc++.h>
using namespace std;
long long n,b[500001],t=1,x,ans,l,r,m;
int main(){
cin>>n>>x;
b[1]=x;
for(int i=2;i<=n;i++){
cin>>x;
if(b[t]>x)t++,ans++,b[t]=x;
else{
l=1,r=t;
while(l<r){
m=(l+r)/2;
if(r-l==1)m=r;
if(x>=b[m])r=m-1;
else l=m;
}
ans=ans+(t-l+1);
while(t&&b[t]<x)t--;
t++;
b[t]=x;
}
}
cout<<ans;
return 0;
}
0 条评论
目前还没有评论...