Bzoj 3831: [Poi2014]Little Bird
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相关推荐
- 洛谷P3572 [POI2014]PTA-Little Bird
P3572 [POI2014]PTA-Little Bird 题目描述 In the Byteotian Line Forest there are nn trees in a row. On top ...
- P3572 [POI2014]PTA-Little Bird
P3572 [POI2014]PTA-Little Bird 一只鸟从1跳到n.从1开始,跳到比当前矮的不消耗体力,否则消耗一点体力,每次询问有一个步伐限制k,求每次最少耗费多少体力 很简短的题目哼. ...
- 【BZOJ3831】[Poi2014]Little Bird 单调队列
[BZOJ3831][Poi2014]Little Bird Description In the Byteotian Line Forest there are trees in a row. ...
- 【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 ...
- Little Bird(BZOJ 3831)
题目大意: 有一排n棵树,第i棵树的高度是Di. MHY要从第一棵树到第n棵树去找他的妹子玩. 如果MHY在第i棵树,那么他可以跳到第i+1,i+2,...,i+k棵树. 如果MHY跳到一棵不矮于当前 ...
- BZOJ 3524: [Poi2014]Couriers【主席树】
3524: [Poi2014]Couriers [题目描述] 传送门 [题解] 主席树的裸题,要找出现次数大于一半的,那么他肯定出现在当前的左子树或右子树中,就这样查找就可以了. 代码如下 #incl ...
- [Luogu P3571] [BZOJ 3835] [POI2014]SUP-Supercomputer
洛谷传送门 BZOJ传送门 题目描述 给定一棵NNN个节点的有根树,根节点为111.QQQ次询问,每次给定一个KKK,用最少的操作次数遍历完整棵树,输出最少操作次数.每次操作可以选择访问不超过KKK个 ...
- BZOJ.3524.[POI2014]Couriers(主席树)
题目链接 //119964kb 5780ms //主席树裸题啊.. #include <cstdio> #include <cctype> #define gc() getch ...
- bzoj 3521: [Poi2014]Salad Bar
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3521 POI的题果然都有一些很精妙的O(n)O(n)O(n)做法 带log的比较简单,这里就 ...
- little bird
LITTLE BIRD Bzoj 3831 相对而言是一道比较简单的DP,不过它需要用单调队列优化.首先是朴素O(n2), if(d[j]>f[i]) f[i]=min(f[i],f[j]); ...
最新文章
- ViSP创建之VS工程详细创建步骤(命令行方式)
- 将weex项目打包的关键点
- log--求自然对数
- MyBatis-22MyBatis缓存配置【一级缓存】
- dig+host+nslookup 域名解析命令
- ASP.NET服务器控件开发(2)--继承WebControl类
- git 只commit不push 会有影响吗_规范化团队 git 提交信息
- 为什么中国天才都往美国跑,可美国人的数学那么槽糕
- 随想录(学习wrk的代码)
- 前端开发神器:grunt快速入门
- 2021年美赛成绩公布与美赛查询!美赛官网已更新
- Top 50 有趣网站
- Archlinuxarm / AUR的国内镜像源(for Banana Pi / Raspberry Pi , etc)(更新)
- shell脚本一键装机(pxe配合kickstart无人值守)
- Oracle查询当前时间的前1个小时的数据
- php底部漂浮广告位代码,DIV+CSS固定底部的漂浮广告
- 【CSS】定位--静态定位-相对定位-绝对定位-子绝父相-固定定位-粘性定位
- Android调用JNI的实现方法
- windows无盘工作站技术
- 【转】PCB中3D相关功能详解
热门文章
- 从头开始学Android之(一)——— Android架构
- linux-centos使用 wget命令获取jdk
- nginx-rtmp一些指令
- imu相机标定_【光电视界】多传感器融合标定方法汇总
- redis 在 mac 下的安装与使用
- 网络性能测试工具iperf的安装与使用
- k1658停运到什么时候_2020年春节快递几号停运 2020年春节快递停运时间电商春节放假通知...
- mysql时间总结_MYSQL日期时间总结
- Nginx源码分析 - 基础数据结构篇 - hash表结构 ngx_hash.c(07)
- Spring源码之bean的加载(三)从bean中获取对象