您的位置:首页 > 大数据 > 人工智能

[BZOJ1660] [Usaco2006 Nov]Bad Hair Day 乱发节

2015-08-12 14:40 405 查看

[Usaco2006 Nov]Bad Hair Day 乱发节

Description



Input

Line 1: 牛的数量 N。

Lines 2..N+1: 第 i+1 是一个整数,表示第i头牛的高度。

Output

Line 1: 一个整数表示c[1] 至 c
的和。

Sample Input

6

10

3

7

4

12

2

输入解释:

六头牛排成一排,高度依次是 10, 3, 7, 4, 12, 2。

Sample Output

5

3+0+1+0+1=5

题解

单调栈

求每个数前面比他矮的,相当于算每个数对他后面比他高的贡献

80000*80000,QAQAQ,int64

var
t,x:array[0..80000]of longint;
i,j:longint;
n,top:longint;
ans:int64;
begin
readln(n);
for i:=1 to n do
readln(x[i]);
ans:=0;
for i:=1 to n do
begin
while (top>0)and(t[top]<=x[i]) do
dec(top);
inc(ans,top);
inc(top); t[top]:=x[i];
end;
writeln(ans);
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: