单调栈

一种内部元素具有单调性的栈

洛谷P2866 [USACO06NOV]Bad Hair Day S

题意

有$N (N \leq 80000)$头奶牛,每一头牛都站在一排,身高为$h_i$。
对于第$i$头牛前面的第$j$头牛,如果$h_i>h_{i+1}$并且$h_i>h_{i+2}$ $\cdots$ $h_i>h_j$,那么认为第$i$头牛可以看到第$i+1$到第$j$头牛。

定义$C_i$为第$i$头牛所能看到的别的牛的数量。请帮助农夫约翰求出$\sum_{i=1}^n C_i$.

解析

考虑一头牛能被几头牛看到。

形象地来说,就是如果一个人比你小,还比你强,那你就可以退役了

单调队列