P3572 [POI2014]PTA-Little Bird】的更多相关文章

P3572 [POI2014]PTA-Little Bird 一只鸟从1跳到n.从1开始,跳到比当前矮的不消耗体力,否则消耗一点体力,每次询问有一个步伐限制k,求每次最少耗费多少体力 很简短的题目哼. 首先对于一个点, 他的状态一定是由前 \(k\) 个转移过来的. \(k\) 的长度在每组询问内一定, 想到用单调队列维护 \(dp\) . 不过此时单调队列里的元素有两个关键字: 劳累度和高度, 因为跳到比这个点高的树需要花费恒为一点体力(这个很重要), 所以我们维护单调队列的时候可以以劳累度为…
P3572 [POI2014]PTA-Little Bird 题目描述 In the Byteotian Line Forest there are nn trees in a row. On top of the first one, there is a little bird who would like to fly over to the top of the last tree. Being in fact very little, the bird might lack the s…
P3572 [POI2014]PTA-Little Bird 题目描述 In the Byteotian Line Forest there are nn trees in a row. On top of the first one, there is a little bird who would like to fly over to the top of the last tree. Being in fact very little, the bird might lack the s…
P3572 [POI2014]PTA-Little Bird 首先,这道题的暴力dp非常好写 就是枚举所有能转移到他的点,如果当前枚举到的位置的值大于 当前位置的话,\(f[i]=min(f[i],f[j])\) 否则就\(f[i]=min(f[i],f[j]+1)\) 时间复杂度为O(nk) 考虑优化,因为只是加1或不加,实际上只需要知道能转移到当前节点的位置 的&f&数组最小值即可,同时也要选这个位置数值最大的(想一想为什么) 这样的话,这道题就没了 #include<iostr…
从1开始,跳到比当前矮的不消耗体力,否则消耗一点体力,每次询问有一个步伐限制,求每次最少耗费多少体力 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N=1e6+10; #define int long long int a[N],dp[N],q[N],l,r=1; int n,m,k; inlin…
题目描述 从1开始,跳到比当前矮的不消耗体力,否则消耗一点体力,每次询问有一个步伐限制,求每次最少耗费多少体力 单调队列优化动态规划 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N=1e6+10; #define int long long int a[N],dp[N],q[N],l,r=1;…
DP/单调队列优化 水题水题水题水题 单调队列优化的线性dp…… WA了8次QAQ,就因为我写队列是[l,r),但是实际操作取队尾元素的时候忘记了……不怎么从队尾取元素嘛……平时都是直接往进放的……还是得记住这个双端队列的错点啊!! //BZOJ 3831 #include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<algorithm> #def…
前缀和优化 当DP过程中需要反复从一个求和式转移的话,可以先把它预处理一下.运算一般都要满足可减性. 比较naive就不展开了. 题目 [Todo]洛谷P2513 [HAOI2009]逆序对数列 [Done]洛谷P2511 [HAOI2008]木棍分割 [Done]洛谷P4099 [HEOI2013]SAO [Done]NOIAC37 染色 单调队列优化 前置技能:单调队列(经典的问题模型:洛谷P1886 滑动窗口) 用于优化形如\(f_i=\min/\max_{j=l_i}^{i-1}\{g_…
目录 #0.0 前置知识 #1.0 简单介绍 #1.1 本质 & 适用范围 #1.2 适用方程 & 条件 #2.0 例题讲解 #2.1 P3572 [POI2014]PTA-Little Bird #2.1.1 关于题面 #2.1.2 朴素算法 #2.1.3 单调性分析 #2.1.4 码代码 #2.2 P3089 [USACO13NOV]Pogo-Cow S #2.2.1 朴素算法 #2.2.2 单调性分析 #2.2.3 码代码 #3.0 单调队列优化多重背包 #3.1 分析 #3.2 码…
0. 前言 写完这篇文章后发现自己对于 DP 的优化一窍不通,所以补了补 DP 的一些优化,写篇 blog 总结一下. 1. 单调队列/单调栈优化 1.2 算法介绍 这应该算是最基础的 DP 优化方法了. 顾名思义,单调队列/单调栈优化 DP 就是保持容器内元素的单调性,以达成减少冗余状态的目的. 举单调队列的例子来说,当一个元素的两种属性(例如下标和权值)都优于另一元素时,就可以用此元素更换掉另一元素.这也正是 OI 界流传说法"当一个人比你小且比你强时,你就被弹出单调队列了"的原理…