POJ3250Bad Hair Day
http://poj.org/problem?id=3250
题意 : n个牛排成一列向右看,牛 i 能看到牛 j 的头顶,当且仅当牛 j 在牛 i 的右边并且牛 i 与牛 j 之间的所有牛均比牛 i 矮。 设牛 i 能看到的牛数为ni,求ni的和。
思路 : 表示一开始就想用数组去操作,结果说是会超时,问了别人的才知道原来要用栈啊,用栈保存,新的元素若是比栈顶元素大,就把栈里小于新元素的弹出栈
#include<cstdio>
#include<cstring>
#include<stack>
#include<iostream>
using namespace std ;
int main()
{
int n ;
scanf("%d",&n) ;
stack<long long>Q;
long long cnt = ;
int a;
scanf("%d",&a) ;
Q.push(a) ;
for(int i = ; i < n ; i++)
{
scanf("%d",&a) ;
while(!Q.empty()&&a>=Q.top())
{
Q.pop();
}
cnt += Q.size();
Q.push(a) ;
}
printf("%lld\n",cnt) ;
return ;
}
POJ3250Bad Hair Day的更多相关文章
- poj--3250--Bad Hair Day(模拟)
Bad Hair Day Time Limit: 2000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u Submit ...
随机推荐
- 火狐谷歌浏览器Json查看插件
1.搜: Firefox的JSON插件 参考: Chrome/FireFox浏览器下处理JSON的插件_Bruce_新浪博客 JSONView :: Firefox 附加组件 但是后来去发现没用: 打 ...
- <Linux系统hostname命令详解>
hostname命令的用法的小知识我们都知道hostname命令是查看主机名和修改主机名的. [root@apache ~]# hostname //查看本机的主机名apache.example.c ...
- 杂项一之js,<select>标签
一.在aspx页面中实现 修改与删除页面的跳转 前台js部分: 在上部的js部分中写,根据传过来的id,来经行页面的跳转,并把id传过去 js部分就是实现了一个页面跳转的功能 (还有确认框confir ...
- silverlight 文本框只能输入数字
void mobile_KeyUp(object sender, KeyEventArgs e) { Regex rg = new Regex("^[0-9]{1,11}$"); ...
- linux命令详解之chkconfig命令使用方法
介绍一个linux常用命令,chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:c ...
- 【PHP】phpcms 关联连接修复
function _keylinks($txt, $replacenum = '',$link_mode = 1) { $keywords = $this->data['keywords']; ...
- python 内置模块之hashlib、hmac、uuid
一.hashlib md5和sha算法通过消息摘要算法生成定长的消息摘要,消息摘要算法是不可逆的.但同一段消息通过摘要算法后得到的值是一样的,可一通过比对消息摘要验证数据的完整性. sha算法比MD5 ...
- Png图片的透明部分穿透测试
private void Window_MouseMove(object sender, MouseEventArgs e){ NavBtnList.Clear(); Point mou ...
- Java HTML页面抓取实例
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- Linux 系统 网络配置
Linux 系统 网络配置 配置Linux系统网络的方法有几种,这里介绍本人常用的两种. 第一种:使用命令ifconfig配置,具体用法:Ipconfig ethx x.x.x.x net ...