little bird
LITTLE BIRD
Bzoj 3831
相对而言是一道比较简单的DP,不过它需要用单调队列优化。首先是朴素O(n2),
if(d[j]>f[i])
f[i]=min(f[i],f[j]);
else
f[i]=min(f[i],f[j]+1);
f[i]表示从1到i需要的最少代价
K很大时会很慢
1 #include<bits/stdc++.h> 2 3 #define INF 9999999 4 5 using namespace std; 6 7 int n,k; 8 9 int f[1000000]; 10 11 int d[1000000]; 12 13 int main() 14 15 { 16 17 cin>>n>>k; 18 19 memset(f,INF,sizeof(f)); 20 21 f[1]=0; 22 23 for(int i=1;i<=n;i++) 24 25 cin>>d[i]; 26 27 for(int i=1;i<=n;i++) 28 29 { 30 31 for(int j=i-k;j<i;j++) 32 33 { 34 35 if(d[j]>d[i]) 36 37 f[i]=min(f[i],f[j]); 38 39 else 40 41 f[i]=min(f[i],f[j]+1); 42 43 } 44 45 } 46 47 cout<<f[n]; 48 49 return 0; 50 51 }
然后是单调队列优化,O(n)的复杂度,对于两个位置i、j,i在j之后,如果f[i]<f[j],直接抛弃j,如果f[i]==f[j],那再h[i]>=h[j],也是抛弃j,即tail--,最后i入队。队列的单调性是单调递增的,每次取队首就可以了。
优化过后,果然很快。
#include<bits/stdc++.h>using namespace std;int top,tail,q[1000001];int f[1000001];int n,k;int d[1000001];bool cmp(int f1,int h1,int f2,int h2){return f1==f2?h1>=h2:f1<f2;}int main(){cin>>n>>k;for(int i=1;i<=n;i++)cin>>d[i];q[top=tail=1]=1;for(int i=2;i<=n;i++){while(top<=tail&&i-top>k)top++;f[i]=f[q[top]]+(d[i]>=d[q[top]]?1:0);while(top<=tail&&cmp(f[i],d[i],f[tail],d[tail]))tail--;q[++tail]=i;}cout<<f[n];return 0;}
转载于:https://www.cnblogs.com/war1111/p/7290246.html
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 ...
- 人形图案c语言程序_做游戏,学编程(C语言) 7 学习EasyX图形交互功能----flappy bird源代码...
经过之前的学习,我们基本掌握了开发小游戏所需要的语法知识和搭建方法,但是基础C语言的可视化与交互功能实在是太弱了 . 利用免费的EasyX插件,我们可以快速上手,简单实现很酷的视觉效果 . EasyX ...
- 《预训练周刊》第23期:Smart Bird:解决变换器性能瓶颈的新方法、Prompt:如何提升预训练模型的迁移效果...
No.23 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第23期&l ...
- 从零开始机器学习比赛经验(bird分享)
视频地址:https://pan.baidu.com/s/1b25yNG 机器学习比赛入门条件 1.过的去的code能力:Leetcode平台 leetcode平台可以帮助我们提高基本的算法实现能力, ...
- 一步步分析AI如何玩Flappy Bird
一.Flappy Bird 游戏展示 在介绍模型.算法前先来直接看下效果,上图是刚开始训练的时候,画面中的小鸟就像无头苍蝇一样乱飞,下图展示的是在本机(后面会给出配置)训练超过10小时后(训练步数超过 ...
- flappy bird游戏源代码揭秘和下载后续---移植到android真机上
前言: 上一篇博客 flappy bird游戏源代码揭秘和下载,源码是运行在window或者mac系统上的,现在我们需要把代码移植到android真机上,让小鸟在手机里飞起来! ps: ...
- 谷歌新模型突破BERT局限:NLP版「芝麻街」新成员Big Bird长这样
萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 最新消息,谷歌推出了NLP系列「芝麻街」的新成员Big Bird. 这个在外界眼中看起来有点可爱的动漫小鸟,摇身一变,解决了BERT模型中的 ...
- 【Unity3D基础教程】给初学者看的Unity教程(四):通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D...
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 在第一篇文章[Unity3D基础教程] ...
- 【教程】HTML5+JavaScript编写flappy bird
作者: 风小锐 新浪微博ID:永远de风小锐 QQ:547953539 转载请注明出处 PS:新修复了两个bug,已下载代码的同学请查看一下 大学立即要毕业了. ...
- P3572 [POI2014]PTA-Little Bird
P3572 [POI2014]PTA-Little Bird 一只鸟从1跳到n.从1开始,跳到比当前矮的不消耗体力,否则消耗一点体力,每次询问有一个步伐限制k,求每次最少耗费多少体力 很简短的题目哼. ...
最新文章
- 数位DP 不断学习中。。。。
- IntelliJ IDEA 重大更新:支持CPU火焰图,新增酷炫主题
- C#中out 及 ref 区别
- System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
- Linux df指令
- rabbitmq 3.7.0+erlang 20.1 安装
- Dapr + .NET 实战(十三)跨语言开发
- 如何将本地项目上传到gitee
- Python之 range()函数✅
- golang RWMutex读写互斥锁源码分析
- kafka 生产和消费信息入门
- xcode打包ipa_codesign签名ipa
- Mysql常用命令笔记
- C# CommandName四个属性
- 下载论文的技巧及经验
- 如果这篇文章说不清epoll的本质,那就过来掐死我吧! (3)
- 英语语法笔记——特殊句型(六)
- 基于TextField实现通用搜索组件
- Matlab中的persistent变量
- web网页设计期末课程大作业:我的家乡文化主题网站设计——山西
热门文章
- web测试常用的用例及知识
- z-index属性简介
- Excel(16)-好学实用的Index!
- 去除html标签的工具类,Java正则匹配过滤移除html标签以及获取img完整标签工具类...
- python调用命令行获取pid_命令行命令/命令运行时的pid及获取
- 代码画简单动物_[500行代码学懂OpenGL]之六数学知识
- android实践练习_android 练习之路 (四)
- Java NIO学习篇之StandardOpenOption详解
- html单击出现下拉菜单,*OnClick实现点击主菜单时出现下拉菜单,已实现但是有问题,求助!*...
- 5-14卷积神经网添加正则化