3831: [Poi2014]Little Bird

http://www.lydsy.com/JudgeOnline/problem.php?id=3831

题目大意:从1开始,跳到比当前矮的不消耗体力,否则消耗一点体力,每次询问有一个步伐限制,求每次最少耗费多少体力

f[i]表示跳到i位置消耗的最小体力

从单调队列中取数,维护的东西有三个

1.单调队列的范围维持在K以内

2.队列尾部位置对应的答案与当前枚举到的位置对应的答案相比,当前答案更优时(f[now]最小时),弹出尾元素

3.队列尾部位置对应的答案与当前枚举到的位置对应的答案相同时,比较当前位置的高度和队尾位置的高度,队尾元素较低的话,弹出尾元素

一系列维护之后,将当前点放入队尾

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,q[1000010],H[1000010],f[1000010];
int main(){scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&H[i]);scanf("%d",&m);int h,t;for(int j=1;j<=m;j++){h=t=1;int k;scanf("%d",&k);memset(q,0,sizeof(q));memset(f,0,sizeof(h));q[t++]=1;for(int i=2;i<=n;i++){while(h<t&&i>q[h]+k)h++;f[i]=f[q[h]]+(H[q[h]]>H[i]?0:1);while(h<t&&(f[q[t-1]]>f[i]||(f[q[t-1]]==f[i]&&H[q[t-1]]<=H[i])))t--;q[t++]=i;}printf("%d\n",f[n]);}
}

转载于:https://www.cnblogs.com/thmyl/p/6819808.html

Bzoj 3831: [Poi2014]Little Bird相关推荐

  1. 洛谷P3572 [POI2014]PTA-Little Bird

    P3572 [POI2014]PTA-Little Bird 题目描述 In the Byteotian Line Forest there are nn trees in a row. On top ...

  2. P3572 [POI2014]PTA-Little Bird

    P3572 [POI2014]PTA-Little Bird 一只鸟从1跳到n.从1开始,跳到比当前矮的不消耗体力,否则消耗一点体力,每次询问有一个步伐限制k,求每次最少耗费多少体力 很简短的题目哼. ...

  3. 【BZOJ3831】[Poi2014]Little Bird 单调队列

    [BZOJ3831][Poi2014]Little Bird Description In the Byteotian Line Forest there are   trees in a row. ...

  4. 【BZOJ 3831】【Poi2014】Little Bird(单调队列优化dp)

    题干: Description In the Byteotian Line Forest there are   trees in a row. On top of the first one, th ...

  5. Little Bird(BZOJ 3831)

    题目大意: 有一排n棵树,第i棵树的高度是Di. MHY要从第一棵树到第n棵树去找他的妹子玩. 如果MHY在第i棵树,那么他可以跳到第i+1,i+2,...,i+k棵树. 如果MHY跳到一棵不矮于当前 ...

  6. BZOJ 3524: [Poi2014]Couriers【主席树】

    3524: [Poi2014]Couriers [题目描述] 传送门 [题解] 主席树的裸题,要找出现次数大于一半的,那么他肯定出现在当前的左子树或右子树中,就这样查找就可以了. 代码如下 #incl ...

  7. [Luogu P3571] [BZOJ 3835] [POI2014]SUP-Supercomputer

    洛谷传送门 BZOJ传送门 题目描述 给定一棵NNN个节点的有根树,根节点为111.QQQ次询问,每次给定一个KKK,用最少的操作次数遍历完整棵树,输出最少操作次数.每次操作可以选择访问不超过KKK个 ...

  8. BZOJ.3524.[POI2014]Couriers(主席树)

    题目链接 //119964kb 5780ms //主席树裸题啊.. #include <cstdio> #include <cctype> #define gc() getch ...

  9. bzoj 3521: [Poi2014]Salad Bar

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3521 POI的题果然都有一些很精妙的O(n)O(n)O(n)做法 带log的比较简单,这里就 ...

  10. little bird

    LITTLE BIRD Bzoj 3831 相对而言是一道比较简单的DP,不过它需要用单调队列优化.首先是朴素O(n2), if(d[j]>f[i]) f[i]=min(f[i],f[j]); ...

最新文章

  1. ViSP创建之VS工程详细创建步骤(命令行方式)
  2. 将weex项目打包的关键点
  3. log--求自然对数
  4. MyBatis-22MyBatis缓存配置【一级缓存】
  5. dig+host+nslookup 域名解析命令
  6. ASP.NET服务器控件开发(2)--继承WebControl类
  7. git 只commit不push 会有影响吗_规范化团队 git 提交信息
  8. 为什么中国天才都往美国跑,可美国人的数学那么槽糕
  9. 随想录(学习wrk的代码)
  10. 前端开发神器:grunt快速入门
  11. 2021年美赛成绩公布与美赛查询!美赛官网已更新
  12. Top 50 有趣网站
  13. Archlinuxarm / AUR的国内镜像源(for Banana Pi / Raspberry Pi , etc)(更新)
  14. shell脚本一键装机(pxe配合kickstart无人值守)
  15. Oracle查询当前时间的前1个小时的数据
  16. php底部漂浮广告位代码,DIV+CSS固定底部的漂浮广告
  17. 【CSS】定位--静态定位-相对定位-绝对定位-子绝父相-固定定位-粘性定位
  18. Android调用JNI的实现方法
  19. windows无盘工作站技术
  20. 【转】PCB中3D相关功能详解

热门文章

  1. 从头开始学Android之(一)——— Android架构
  2. linux-centos使用 wget命令获取jdk
  3. nginx-rtmp一些指令
  4. imu相机标定_【光电视界】多传感器融合标定方法汇总
  5. redis 在 mac 下的安装与使用
  6. 网络性能测试工具iperf的安装与使用
  7. k1658停运到什么时候_2020年春节快递几号停运 2020年春节快递停运时间电商春节放假通知...
  8. mysql时间总结_MYSQL日期时间总结
  9. Nginx源码分析 - 基础数据结构篇 - hash表结构 ngx_hash.c(07)
  10. Spring源码之bean的加载(三)从bean中获取对象