P1660: [Usaco2006 Nov]Bad Hair Day 乱发节

还是单调栈,维护递减即可,在进行计算,注意要保存前一个比当前数大的数之前有几个比它小。

 1 var n,i,j,num,now,tem:longint;
 2 ans:int64;
 3 stack:array[0..1000001] of longint;
 4 h,l:array[0..1000001] of longint;
 5 begin
 6   readln(n);
 7   for i:=1 to n do
 8     readln(h[i]);
 9   now:=0;
10   ans:=0;
11   //fillchar(l,sizeof(l),1);
12   for i:=1 to n do
13     l[i]:=1;
14   for i:=n downto 1 do
15     begin
16       while (h[i]>stack[now]) and (now<>0) do dec(now);
17       inc(now);
18       stack[now]:=h[i];
19       ans:=ans+n+1-i-now-l[now-1];
20       l[now]:=n+1-i-now;
21     end;
22   write(ans);
23 end.
时间: 2024-12-12 01:36:47

P1660: [Usaco2006 Nov]Bad Hair Day 乱发节的相关文章

1660: [Usaco2006 Nov]Bad Hair Day 乱发节

1660: [Usaco2006 Nov]Bad Hair Day 乱发节 Time Limit: 2 Sec  Memory Limit: 64 MB Submit: 665  Solved: 318 [Submit][Status] Description Input * Line 1: 牛的数量 N. * Lines 2..N+1: 第 i+1 是一个整数,表示第i头牛的高度. Output * Line 1: 一个整数表示c[1] 至 c[N]的和. Sample Input 6 10

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

1660: [Usaco2006 Nov]Bad Hair Day 乱发节 Time Limit: 2 Sec  Memory Limit: 64 MBSubmit: 606  Solved: 289[Submit][Status] Description Input * Line 1: 牛的数量 N. * Lines 2..N+1: 第 i+1 是一个整数,表示第i头牛的高度. Output * Line 1: 一个整数表示c[1] 至 c[N]的和. Sample Input 6 10 3

BZOJ 1660: [Usaco2006 Nov]Bad Hair Day 乱发节( 单调栈 )

维护一个h严格递减的栈 , 出栈时计算一下就好了.. -------------------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<stack> #include<iostream> #define rep( i , n )

【BZOJ 1660】 [Usaco2006 Nov]Bad Hair Day 乱发节

1660: [Usaco2006 Nov]Bad Hair Day 乱发节 Time Limit: 2 Sec  Memory Limit: 64 MB Submit: 678  Solved: 326 [Submit][Status][Discuss] Description Input * Line 1: 牛的数量 N. * Lines 2..N+1: 第 i+1 是一个整数,表示第i头牛的高度. Output * Line 1: 一个整数表示c[1] 至 c[N]的和. Sample In

[BZOJ] 1660: [Usaco2006 Nov]Bad Hair Day 乱发节

1660: [Usaco2006 Nov]Bad Hair Day 乱发节 Time Limit: 2 Sec  Memory Limit: 64 MBSubmit: 1207  Solved: 591[Submit][Status][Discuss] Description Input * Line 1: 牛的数量 N. * Lines 2..N+1: 第 i+1 是一个整数,表示第i头牛的高度. Output * Line 1: 一个整数表示c[1] 至 c[N]的和. Sample Inp

[Usaco2006 Nov]Bad Hair Day 乱发节

Description 农民John的某 N 头奶牛 (1 <= N <= 80,000) 正在过乱头发节!由于每头牛都意识到自己凌乱不堪的发型,FJ 希望统计出能够看到其他牛的头发的牛的数量. 每一头牛 i有一个高度 h[i] (1 <= h[i] <= 1,000,000,000)而且面向同一方向排成一排.第i头牛可以看到第i+1,i+2头牛,只要他们的高度严格小于第i头牛,并且中间没有其他奶牛阻挡 Input Line 1: 牛的数量 N. Lines 2..N+1: 第 i

BZOJ1725: [Usaco2006 Nov]Corn Fields牧场的安排

1725: [Usaco2006 Nov]Corn Fields牧场的安排 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 400  Solved: 290[Submit][Status] Description Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M<=12; 1<=N<=12),每一格都是一块正方形的土地.FJ打算在牧场上的某几格土地里种上美味的草,供他的奶牛们享用.遗憾的是,有些土地相当的贫

bzoj1726 [Usaco2006 Nov]Roadblocks第二短路

1726: [Usaco2006 Nov]Roadblocks第二短路 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 826  Solved: 394[Submit][Status] Description 贝茜把家搬到了一个小农场,但她常常回到FJ的农场去拜访她的朋友.贝茜很喜欢路边的风景,不想那么快地结束她的旅途,于是她每次回农场,都会选择第二短的路径,而不象我们所习惯的那样,选择最短路. 贝茜所在的乡村有R(1<=R<=100,000)条双向

BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数(数位DP+恶心细节)

BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 Time Limit: 5 Sec  Memory Limit: 64 MB Description 正如你所知,奶牛们没有手指以至于不能玩“石头剪刀布”来任意地决定例如谁先挤奶的顺序.她们甚至也不能通过仍硬币的方式. 所以她们通过"round number"竞赛的方式.第一头牛选取一个整数,小于20亿.第二头牛也这样选取一个整数.如果这两个数都是 "round numbers"