P2866 糟糕的一天
阿新 • • 發佈:2017-05-08
pre sca open color ++ closed ack 個數 family
糟糕的一天
洛谷鏈接
挺水的一道題,也就是看每個數後面有多少數比它小,最後把總數加起來。
我們可以用單調棧來實現,並用一個數組來保存每個數現在的狀態。
代碼:
![技術分享](/img/jia.gif)
1 #include<cstdio> 2 long long n,a[80010],stack[80010],top,ans=0; 3 int main(){ 4 scanf("%lld",&n); 5 for(long long i=1;i<=n;i++) 6 scanf("%lld",&a[i]); 7 a[n+1]=1<<30; 8 forView Code(long long i=1;i<=n+1;i++){ 9 while(top&&a[stack[top]]<=a[i]){ 10 ans+=i-stack[top]-1; 11 top--; 12 } 13 stack[++top]=i; 14 } 15 printf("%lld",ans); 16 return 0; 17 }
P2866 糟糕的一天