BZOJ 3831
3831: [Poi2014]Little Bird
Time Limit: 20 Sec Memory Limit: 128 MB
Submit: 121 Solved: 68
[Submit][Status]
Description
Input
Output
Sample Input
4 6 3 6 3 7 2 6 5
2
2
5
Sample Output
1
HINT
Explanation: The first bird may stop at the trees no. 1, 3, 5, 7, 8, 9. Its tiresome flight legs will be the one from the 3-rd tree to the 5-th one and from the 7-th to the 8-th.
朴素+朴素->TLE版
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define N 1000100
int n,m,d[N],f[N];
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d",&d[i]);
scanf("%d",&m);
for(int q=,k;q<=m;q++){
scanf("%d",&k);
for(int i=;i<=n;i++) f[i]=0x3f3f3f3f;
for(int i=;i<=n;i++){
for(int j=max(,i-k);j<=n;j++){
if(d[j]>d[i]) f[i]=min(f[i],f[j]);
else f[i]=min(f[i],f[j]+);
}
}
printf("%d\n",f[n]);
}
return ;
}

题解:


读入优化+单调队列优化->AC版 //5304ms
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define N 1000100
int n,m,d[N],f[N],q[N];
inline int read(){
register int x=,f=;
register char ch=getchar();
while(ch>''||ch<''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=(x<<)+(x<<)+ch-'';ch=getchar();}//位运算略快
return x*f;
}
inline void deal(int k){
int h,t;
f[q[h=t=]=]=;
for(int i=;i<=n;i++){
while(h<=t&&q[h]+k<i) h++;
f[i]=f[q[h]]+(d[q[h]]<=d[i]);
while(h<=t&&(f[i]<f[q[t]]||(f[i]==f[q[t]]&&d[i]>=d[q[t]]))) t--;
q[++t]=i;
}
printf("%d\n",f[n]);
}
int main(){
n=read();
for(int i=;i<=n;i++) d[i]=read();
m=read();
for(int i=,k;i<=m;i++) deal(read());
return ;
}
BZOJ 3831的更多相关文章
- 单调队列应用--BZOJ 3831 Little Bird
3831: [Poi2014]Little Bird Time Limit: 20 Sec Memory Limit: 128 MB Description In the Byteotian Lin ...
- Bzoj 3831 [Poi2014]Little Bird
3831: [Poi2014]Little Bird Time Limit: 20 Sec Memory Limit: 128 MB Submit: 310 Solved: 186 [Submit][ ...
- ●BZOJ 3831 [Poi2014]Little Bird
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3831 题解: 单调队列优化DP 定义 F[i] 为到达第i课树的疲劳值. 显然最暴力的转移就 ...
- bzoj 3831 Little Bird (单调队列优化dp)
/*先贴个n*n的*/ #include<iostream> #include<cstdio> #include<cstring> #define maxn 100 ...
- BZOJ 3831: [Poi2014]Little Bird【动态规划】
Description In the Byteotian Line Forest there are trees in a row. On top of the first one, there ...
- Little Bird(BZOJ 3831)
题目大意: 有一排n棵树,第i棵树的高度是Di. MHY要从第一棵树到第n棵树去找他的妹子玩. 如果MHY在第i棵树,那么他可以跳到第i+1,i+2,...,i+k棵树. 如果MHY跳到一棵不矮于当前 ...
- BZOJ 3831 单调队列DP
思路: 这好像是我刚学单调性的时候做的题 (我是不会告诉你 我被这题教做人了的...) i-stk[head]>k 删队头 f[stk[tail]]>f[i]||(f[stk[tail]] ...
- 单调队列优化DP || [Poi2014]Little Bird || BZOJ 3831 || Luogu P3572
题面:[POI2014]PTA-Little Bird 题解: N<=1e6 Q<=25F[i]表示到达第i棵树时需要消耗的最小体力值F[i]=min(F[i],F[j]+(D[j]> ...
- 【BZOJ】【3831】【POI2014】Little Bird
DP/单调队列优化 水题水题水题水题 单调队列优化的线性dp…… WA了8次QAQ,就因为我写队列是[l,r),但是实际操作取队尾元素的时候忘记了……不怎么从队尾取元素嘛……平时都是直接往进放的……还 ...
随机推荐
- ecstore 后台登陆跳转到 api失败,中心请求网店API失败
解决过程没有具体参与,官方解决后回复的邮件,可以参考一下: 后台登陆错误图: 商派解决方法邮件: 特别注意:这个错误提示有时候也跟ecstore的nginx服务器伪静态有关,具体参考: htt ...
- UVa 10900 So you want to be a 2n-aire? (概率DP,数学)
题意:一 个答题赢奖金的问题,玩家初始的金额为1,给出n,表示有n道题目,t表示说答对一道题目的概率在t到1之间,每次面对一道题,可以选择结束游戏, 获得当 前奖金:回答下一道问题,答对的概率p在t到 ...
- ASP.NET MVC- Area 使用
ASP.NET MVC允许使用 Area(区域)来组织Web应用程序,每个Area代表应用程序的不同功能模块.这对于大的工程非常有用,Area 使每个功能模块都有各自的文件夹,文件夹中有自己的Cont ...
- SQL将本地图片文件插入到数据库
GO RECONFIGURE GO GO RECONFIGURE GO --生成格式化文件 在此基础上再进行编辑,自己创建一个格式化文件有点问题 --10.0 -- --1 SQLBINARY 0 0 ...
- Autofac实例生命周期
1.默认,每次请求都会返回一个实例 builder.RegisterType<X>().InstancePerDependency(); 2.Per Lifetime Scope:这个作用 ...
- Codeforces Gym 100342H Problem H. Hard Test 构造题,卡迪杰斯特拉
Problem H. Hard TestTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/at ...
- HDU 1077Catching Fish(简单计算几何)
Catching Fish Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- 跨平台实现wchar_t转成char
位宽.其实知道了这个以后,要在wchar_t 和 char两种类型之间转换就不难实现了. wchar_t 转换为char 的代码如下: 有如下的wchar_t和char变量 wchar_t w_cn ...
- android数据库操作之直接读取db文件
在对数据库操作时,常用的有两种方法: 1.在代码中建库.建表: 2.直接将相关库.表建立好,将db文件拷贝至assets目录下: 现在来看看第二种方法: private String Ge ...
- 利用nf_conntrack机制存储路由,省去每包路由查找
IP是无连接的,因此IP路由是每包一路由的,数据包通过查找路由表获取路由,这是现代操作协议协议栈IP路由的默认处理方式.可是假设协议栈具有流识别能力,是不是能够基于流来路由呢?答案无疑是肯定的. 设计 ...