题目描述

分析:

题目大意是求出每只cow能看到的cow的总数的和
转换为:
每只cow能被看到的次数总和
这样就可以用单调队列求解了。
对于每只cow,删掉队列中height小于它的值,ans加上此时队列的长度(就是这只cow会被看到的次数)。再插入这只cow的height。如此求解。
注意:ans要用long long (毕竟80000*80000 > INT_MAX)

#include<cstdio>
#define MAXN 80000int n,h[MAXN+10],que[MAXN+10];
long long ans;void read()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&h[i]);
}
void workout()
{int front=0,rear=0;for(int i=1;i<=n;i++){while(front<rear){if(que[rear-1]<=h[i])rear--;elsebreak;}ans+=rear-front;que[rear++]=h[i];}printf("%I64d\n",ans);
}
int main()
{read();workout();
}

转载于:https://www.cnblogs.com/katarinayuan/p/6572827.html

POJ 3250 Bad Hair Day - 单调队列相关推荐

  1. POJ - 3250 Bad Hair Day(单调队列/单调栈)

    题目链接:点击查看 题目大意:给出n只牛,高度参差不齐,所有的牛都朝向右边,他们可以看到右边所有没有遮挡并且比自己低的牛,问每只牛可以看到的牛的数量总和是多少 题目分析:这个题目让求每只牛看到的牛的数 ...

  2. POJ 3250 Bad Hair Day (单调栈)

    POJ 3250 Bad Hair Day (单调栈) 手动博客搬家:本文发表于20170806 22:53:35, 原地址https://blog.csdn.net/suncongbo/articl ...

  3. POJ 2823 Sliding Window(单调队列)

    http://poj.org/problem?id=2823 题意: 给出数组和滑动窗口的大小,每次输出滑动窗口中的最大值和最小值. 思路: 这题可以算是单调队列的模板题了,分别维护单调递增和单调递减 ...

  4. 入门经典_Chap08_题解总结:极角扫描法 滑动窗口 单调队列 单调栈

    总结  本章主要关注一个重要的问题 – 单调队列和单调栈的使用  同时还有一些其他的问题,如扫描法,递归的思想, 构造, 分治, 二分等 知识点 单调队列 和 单调栈 题目 UVA - 1606 Am ...

  5. 算法笔记--单调队列优化dp

    单调队列:队列中元素单调递增或递减,可以用双端队列实现(deque),队列的前面和后面都可以入队出队. 单调队列优化dp: 问题引入: dp[i] = min( a[j] ) ,i-m < j ...

  6. POJ 3250 Bad Hair Day【单调队列】

    Description Some of Farmer John'sNcows (1 ≤N≤ 80,000) are having a bad hair day! Since each cow is s ...

  7. POJ 1821 Fence ★(单调队列优化DP)

    题目大意:有一道线性篱笆由N个连续的木板组成.有K个工人,你要叫他们给木板涂色.每个工人有3个参数:L 表示 这个工人可以涂的最大木板数目,S表示这个工人站在哪一块木板,P表示这个工人每涂一个木板可以 ...

  8. POJ 3017 DP + 单调队列 + 堆

    题意:给你一个长度为n的数列,你需要把这个数列分成几段,每段的和不超过m,问各段的最大值之和的最小值是多少? 思路:dp方程如下:设dp[i]为把前i个数分成合法的若干段最大值的最小值是多少.dp转移 ...

  9. POJ 2823-Sliding Window单调队列解题报告

    链接:http://poj.org/problem?id=2823 利用单调队列的出队入队,维护区间的最值,保证队列单调递增或单调递减,要维护单调递增队列,当一个数字插入的时候,从队尾往前找到第一个比 ...

  10. POJ 1821 单调队列+dp

    题目大意:有K个工人,有n个墙,现在要给墙涂色.然后每个工人坐在Si上,他能刷的最大范围是Li,且必须是一个连续子区间,而且必须过Si,他刷完后能获得Pi钱 思路:定义dp[i][j]表示前i个人,涂 ...

最新文章

  1. web渗透测试基本步骤
  2. day002-HTML知识点总结:浏览器兼容性之指定IE浏览器使用chrome内核渲染页面
  3. coco数据集大小分类_如何处理不平衡数据集的分类任务
  4. 第二章 第三节 创建第一个程序
  5. Linux单磁盘根分区扩容(非LVM)
  6. windows下的库文件在linux的使用,Windows、Linux之间传输文件的几种方式
  7. mybatis 取查询值_Mybatis --- 映射文件、参数处理、参数值的获取、select元素
  8. Golang——Tag、自定义类型、未命名类型
  9. Ubuntu(Debian)apt-get
  10. mac Zip 常用命令
  11. python mongodb_python实现mongodb的增删改查
  12. iOS8以后,跳转到设置页面
  13. UTF-8转码GBK
  14. python高级函数_python高级之函数
  15. 《OpenGL编程指南(原书第9版)》——2.8 SPIR-V
  16. CSS第五天总结——PS切图、CSS属性书写顺序
  17. EF 通用帮助类 含分页 Lambda 拼接表达式
  18. SQL——语法基础篇(上)
  19. 在Linux下安装配置bochs,并成功跑一个简单的boot引导(超详细)
  20. 模式源于生活:代理模式---中介租房

热门文章

  1. sans webcast
  2. 庞果网一道题(字符博弈)的一点想法
  3. OSPF实验:OSPF认证
  4. 阿里“拆台”,中台真的不香了?
  5. 我和面试官的博弈:Redis 篇
  6. 工作 3 年就是高级,这就是差距啊
  7. 都不写代码,架构师整天在干啥?
  8. 「做点事」科技公司成立了!
  9. nosql数据库之Redis概念及基本操作
  10. Linux进阶之给nginx设置登录用户验证