bzoj1660:[Usaco2006 Nov]badhair乱头发节
Description
意识到自己凌乱不堪的发型,
FJ 希望统计出能够看到其他牛的头发的牛的数量。
每一头牛 i有一个高度 h[i] (1 <= h[i] <= 1,000,000,000)而且面向东方排成
一排(在我们的图中是向右)。因此,第i头牛可以看到她前面的那些牛的头,
(即i+1, i+2,等等),只要那些牛的高度严格小于她的高度。
例如这个例子:
牛#1 可以看到她们的发型 #2, 3, 4
牛#2 不能看到任何牛的发型
牛#3 可以看到她的发型 #4
牛#4 不能看到任何牛的发型
牛#5 可以看到她的发型 6
牛#6 不能看到任何牛的发型!
让 c[i] 表示第i头牛可以看到发型的牛的数量;请输出 c[1] 至 c[N]的和。
如上面的这个例子,正确解是3 + 0 + 1 + 0 + 1 + 0 = 5。
Input
* Lines 2..N+1: 第 i+1 是一个整数,表示第i头牛的高度。
Output
Sample Input
6
10
3
7
4
12
2 输入解释:
六头牛排成一排,高度依次是 10, 3, 7, 4, 12, 2。
Sample Output
5
很容易看出思路,只能看到比自己矮的奶牛,维护一个单调下降的栈,只要后面的奶牛比自己矮,就入栈,直到第一个比自己高的,统计下栈内元素个数,加到答案里,每头奶牛都走一遍就可以了,单调栈。
代码如下
#include<bits/stdc++.h>
using namespace std;
int n,sstack[],t[],top=;
long long ans=;
int main()
{
cin>>n;
for(int i=;i<=n;i++)
scanf("%d",&t[i]);
for(int i=;i<=n;i++)
{
while(top&&t[i]>=sstack[top])top--;
ans+=top;
sstack[++top]=t[i];
}
cout<<ans;
}
bzoj1660:[Usaco2006 Nov]badhair乱头发节的更多相关文章
- JZOJ 1264. 乱头发节
1264. 乱头发节(badhair.pas/c/cpp) (File IO): input:badhair.in output:badhair.out Time Limits: 1000 ms M ...
- [bzoj1660][Usaco2006 Nov]Bad Hair Day_单调栈
Bad Hair Day bzoj-1660 Usaco-2006 Nov 题目大意:n头牛站成一列,每头牛向后看.f[i]表示第i头牛到第n头牛之间有多少牛,使得这些牛都比i矮,且中间没有比i高的牛 ...
- BZOJ1660: [Usaco2006 Nov]Bad Hair Day 乱发节
1660: [Usaco2006 Nov]Bad Hair Day 乱发节 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 606 Solved: 289 ...
- BZOJ1660: [Usaco2006 Nov]Bad Hair Day 乱发节(单调栈)
题意 题目链接 Sol 单调栈板子题.. 找到向左第一个比他大的位置,然后判断一下就可以了 #include<bits/stdc++.h> //#define int long long ...
- OJP1147括号匹配加强版(栈)与P1153乱头发节(单调栈)
惨兮兮的被刷掉2%的通过率后在经过思考和dalao的指点后终于A掉了这道题 强烈建议修改这题的样例,实在太迷惑人,各种错误算法都能过 比如说这是一份错误代码,看懂了也不要学思路,和正解不知道差到哪里去 ...
- BZOJ 1660: [Usaco2006 Nov]Bad Hair Day 乱发节( 单调栈 )
维护一个h严格递减的栈 , 出栈时计算一下就好了.. ------------------------------------------------------------------------- ...
- 1660: [Usaco2006 Nov]Bad Hair Day 乱发节
1660: [Usaco2006 Nov]Bad Hair Day 乱发节 Time Limit: 2 Sec Memory Limit: 64 MB Submit: 665 Solved: 31 ...
- 【BZOJ 1660】 [Usaco2006 Nov]Bad Hair Day 乱发节
1660: [Usaco2006 Nov]Bad Hair Day 乱发节 Time Limit: 2 Sec Memory Limit: 64 MB Submit: 678 Solved: 32 ...
- 【BZOJ1662】[Usaco2006 Nov]Round Numbers 圆环数 数位DP
[BZOJ1662][Usaco2006 Nov]Round Numbers 圆环数 Description 正如你所知,奶牛们没有手指以至于不能玩"石头剪刀布"来任意地决定例如谁 ...
随机推荐
- Dispatch Sources(转)
Dispatch Sources 现代系统通常提供异步接口,允许应用向系统提交请求,然后在系统处理请求时应用可以继续处理自己的事情.Grand Central Dispatch正是基于这个基本行为而设 ...
- Shell脚本学习指南笔记
Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...
- sdut oj 1163 C语言实验——排列 (当初不会递归生成排列,这个题目现在才补上 刘汝佳给出了写法 *【模板】 当然有生成全排列的函数存在 )
C语言实验——排列 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 有4个互不相同的数字,请按序输出由其中三个不重复数字组成的排列 ...
- 如何刷新本地的DNS缓存?
为了提高网站的访问速度,系统会在成功访问某网站后将该网站的域名.IP地址信息缓存到本地.下次访问该域名时直接通过IP进行访问.一些网站的域名没有变化,但IP地址发生变化,有可能因本地的DNS缓存没有刷 ...
- 报错:'Navigator is deprecated and has been removed from this package. It can now be installed
报错:'Navigator is deprecated and has been removed from this package. It can now be installed ' + ...
- jenkins页面不刷新,设置tomcat缓存
装jenkins的时候,部署后,访问jenkins页面,输入管理员密码后,出现jenkins页面停滞,看后台catlina日志,发现需要增加tomcat容器的cache,才能加载一些jar包,下面是设 ...
- 存储过程系列五:完整的存储过程备份使用函数REPLACE()substr()
CREATE OR REPLACE PROCEDURE "YLQXSCXKESL_GGXKZ_TO_QB" ( ...
- hdu-5734 Acperience(数学)
题目链接: Acperience Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- SecureCRT自动备份脚本-思科
利用SecureCRT脚本对思科设备进行批量备份: (1)新建文本文件(注意保存路径,本次测试路径为D:\backup\list.txt): x.x.x.x username password ena ...
- telnet命令发送邮件
下面的例子是用qq的smtp服务器. set localecho 本地回显启用 smtp.qq.com Esmtp QQ Mail Server helo sis smtp.qq.com//服务器返回 ...