当前位置: 首页 > 编程日记 > 正文

NOIP模拟题 斐波那契数列

题目大意

给定长度为$n$序列$A$,将它划分成尽可能少的若干部分,使得任意部分内两两之和均不为斐波那契数列中的某一项。

题解

不难发现$2\times 10^9$之内的斐波那契数不超过$50$个

先求出第$i$个数之前最后一个能和第$i$个数相加为斐波那契数的位置$last_i$。

考虑每一部分$[l,r]$只需满足$\max\{last_i\}<l(i\in [l,r])$即可。

那么设$F_i$表示以$i$为结尾最小化分数,那么转移到$i$的$j$显然是一段左右端点均单调不递减的区间,用单调队列维护即可。

#include<bits/stdc++.h>
#define debug(x) cerr<<#x<<" = "<<x
#define sp <<"  "
#define el <<endl
#define LL long long
#define M 100020
#define MAXN 2000000000
using namespace std;
int read(){int nm=0,fh=1; char cw=getchar();for(;!isdigit(cw);cw=getchar()) if(cw=='-') fh=-fh;for(;isdigit(cw);cw=getchar()) nm=nm*10+(cw-'0');return nm*fh;
}
map<int,int>MP; int n,m,p[M],F[M],last[M],G[M],q[M],hd,tl;
int main(){G[1]=1,G[2]=2,F[1]=1; n=read();for(m=2;(LL)G[m-1]+(LL)G[m]<=MAXN;m++) G[m+1]=G[m]+G[m-1];for(int i=1;i<=n;i++) p[i]=read();MP[p[1]]=1,q[tl++]=0,q[tl++]=1;for(int i=2,now=0;i<=n;i++){last[i]=0;for(int j=0;j<=m;j++){if(!MP.count(G[j]-p[i])) continue;int k=MP[G[j]-p[i]]; last[i]=max(last[i],k);} now=max(now,last[i]);while(q[hd]<now) hd++; F[i]=F[q[hd]]+1,MP[p[i]]=i;while(F[q[tl-1]]>=F[i]&&hd<tl) tl--; q[tl++]=i;}printf("%d\n",F[n]);return 0;
}

转载于:https://www.cnblogs.com/OYJason/p/9900510.html

相关文章:

使用rpmbuild对ceph的源码包进行重新打包

进入ceph源码包下载ceph相关的rpm包和tar包 我们下载的是ceph-12.1.1-0.el7.src.rpmceph L版本的rpm包 执行命令rpmbuild --rebuild ceph-12.1.1-0.el7.src.rpm 等待它执行到configuring done之后就强行终止 -- Found cython -- Performing Test HAS_VTA -- Performing Test …

java与.net比较学习系列(7) 属性

说起属性&#xff0c;实际上java中没有属性这个概念&#xff0c;只有字段和方法&#xff0c;但是可以通过私有字段和声明get,set方法来实现类似于C#中属性的效果。 在C#中&#xff0c;声明属性有两种方式&#xff0c;一种是声明访问器&#xff0c;另外一种是利用C# 3.0新增的自…

国家标准油类计算机,食用油新国标正式实施 产品配方将不再是“机密”

为了更好维护消费者权益&#xff0c;引导食用油市场秩序合理化转变&#xff0c;解决油难选的问题&#xff0c;今年6月21日&#xff0c;国家卫生健康委员会、国家市场监督管理总局联合发布的《食品安全国家标准 植物油》(GB2716-2018)&#xff0c;并于2018年12月21日起正式实施。…

如何终止正在在发送的ajax请求

核心&#xff1a;调用XMLHttpRequest对象上的abort方法 jquery的ajax方法有自己的超时时间设置参数&#xff1a; $.ajax({type:POST,url:b.php,data:,timeout:5000,success:function(){} }) 同时1.$.get返回的数据类型是XMLHttpRequest&#xff0c;请参考手册。&#xff08;$.p…

Luogu P2619 [国家集训队2]Tree I(WQS二分+最小生成树)

P2619 [国家集训队2]Tree I 题意 题目描述 给你一个无向带权连通图&#xff0c;每条边是黑色或白色。让你求一棵最小权的恰好有\(need\)条白色边的生成树。 题目保证有解。 输入输出格式 输入格式&#xff1a; 第一行\(V,E,need\)分别表示点数&#xff0c;边数和需要的白色边数…

关于OSD::mkfs: ObjectStore::mkfs failed with error (5) Input/output error问题的解决

环境&#xff1a; ceph L版本12.2.1升级到12.2.12 这个问题是由于升级后进行12.2.12环境中的使用ceph-disk 进行osd部署时出现如下问题&#xff0c;执行命令 ceph-disk -v prepare /dev/sdb;ceph-disk -v activate /dev/sdb1 出现如下问题&#xff0c;出现这个问题之前我的磁盘…

福大计算机国二,福大学子喜获中国大学生计算机设计大赛二三等奖

新闻中心讯/8月9日&#xff0c;第十一届中国大学生计算机设计大赛暨第五届中国大学生动漫游戏创意设计大赛(爱果冻杯)决赛在福建农林大学闭幕。福州大学获得了全国决赛的二等奖3项&#xff0c;三等奖1项。据了解&#xff0c;本次大赛共有来自中央美术学院、中央民族大学、东北大…

Ubuntu下如何解压缩zip,tar,tar.gz,tar.bz2文件

转自&#xff1a;http://wangli-5665.diandian.com/post/2011-08-18/4039228 这么多年来&#xff0c;数据压缩对我们来说是非常有用的。无论是在邮件中发送的图片用的zip文件还是在服务器压缩数据文件&#xff0c;我们都可以让下载更容易或者有效 的节约磁盘空间。某些压缩格式…

DataGridView和ListT绑定不显示问题

在学习DataGridView 和List<T>绑定时发现DataGridView不会显示数据。后来发现要用类的属性才能正常显示&#xff0c;如果直接用类的字段等来显示&#xff0c;则无法显示数据。 代码如下&#xff1a; using System; using System.Collections.Generic; using System.Compo…

【pytorch】pytorch-backward()的理解

pytorch-backword函数的理解 函数&#xff1a;\(tensor.backward(params)\) 这个params的维度一定要和tensor的一致&#xff0c;因为tensor如果是一个向量y [y1,y2,y3]&#xff0c;那么传入的params[a1,a2,a3]&#xff0c;这三个值是系数&#xff0c;那么是什么的系数呢&#…

CEPH集群更换ip(更换ip前的防范和更换ip后的恢复)

文章目录修改/etc/hosts中的ip设置修改ceph.conf中的ip地址获取monmap将monmap注入到集群最近测试部在测试一些功能&#xff0c;在我们不知情得情况下更换了集群内外网ip&#xff0c;之后直接甩锅到我这里&#xff08;大哭&#xff09;接手到的集群是ceph各个组件之间无法成功通…

vim使用大全

鸟哥介绍的几个高级功能1.区块选择的按键意义v字符选择&#xff0c;会将光标经过的地方反白选择&#xff01;V行选择&#xff0c;会将光标经过的行反白选择&#xff01;[Ctrl]v区块选择&#xff0c;可以用长方形的方式选择资料y将反白的地方复制起来d将反白的地方删除掉 2.多档…

ajax默认超时时间多久,请问chrome浏览器的默认超时时间是多久?

测试时间&#xff1a;2019/02/26MacOS 环境下&#xff0c;timeout在各浏览器默认值为(以下浏览器都为当前时间最新版本)chrome 72.x 为4minsafari 12 为8minfirefox 65 貌似没有超时时间测试代码Documentqueryconst ajax (url /api/timeout) > {const xhr new XMLHttpReq…

Nginx 做图片服务器

呵呵 说来搞笑 我们公司领导那个决定啊&#xff0c;公司的图片Windows服务机器 准备迁移到Linux&#xff0c;我勒个去&#xff0c;也不搞个正规的文件系统&#xff0c;先喷下公司 2.8KW 张零碎图片 1.8T 文件占有量&#xff0c; 哥刚刚接手也是被吓了一跳。 Nginx 带动 整个公司…

SUSTechTripleH队墓志铭

SUSTechTripleH队建于2017年7月队员包括朱泓霖 贺启旸 黄博11月获南方科技大学第一枚ICPC区域赛奖牌次年获第一枚广东省省赛金牌2018年8月新增队员张文灏11月4日获得南方科技大学第一枚ICPC区域赛金牌于2018年11月5日解散享年16个月祝愿南科大ACM集训队越办越好转载于:https:/…

ceph-deploy rpm包的制作

今天需要部署一个ceph L 版本12.2.12的环境&#xff0c;无奈最近公司网络无法访问到ceph官网&#xff0c;只能使用之前下载好的ceph-deploy-1.5.39版本&#xff0c;安装上之后一口老血喷了出来&#xff0c;没有mgr的部署选项。 无奈之下只能自己制作一个1.5.38版本的ceph-depl…

ajax post的回调函数另一个方法,jQueryajax–post()方法 - 米扑博客

jQuery ajax - post() 实例请求 test.php 网页&#xff0c;忽略返回值&#xff1a;$.post("test.php");通过 AJAX POST 请求改变 div 元素的文本&#xff1a;$("input").keyup(function(){txt$("input").val();$.post("demo_ajax.asp"…

将excel中是数据导入数据库

2019独角兽企业重金招聘Python工程师标准>>> 将excel中是数据导入数据库 1.利用excel生成sql语句&#xff1a; 列如&#xff1a; 1&#xff09;.insert&#xff1a; CONCATENATE("insert into Company (ID,Name,Address,Tell,Brief,URL,Fax,Contact,TradeI…

Java工具类-转换字符编码

package common; /***字符串处理公用类 */ public class DealString {/*** 转换字符编码 由“iso-8859-1”西文转换为简体中文*/public static String toGb(String uniStr){String gbStr"";if(uniStrnull){uniStr"";}try{byte[] tempByteuniStr.getBytes(&…

partprobe源码分析

partprobe工具 操作系统目录/usr/sbin/partprobe 程序安装包parted-3.1-17.el7.x86_64.rpm 命令用法&#xff1a; partprobe是用来告知操作系统内核 分区表发生变化的工具&#xff0c;告知方式是请求内核重读分区表 选项如下&#xff1a; -d 不会让内核重读分区表&#xff0c…

数据库和服务器什么协议,数据库服务器协议

数据库服务器协议 内容精选换一换本章节适用于MRS 3.x之前版本。Loader支持以下多种连接&#xff0c;每种连接的配置介绍可根据本章节内容了解。obs-connectorgeneric-jdbc-connectorftp-connector或sftp-connectorhbase-connector、hdfs-connector或hive-connectorOBS连接是Lo…

VC实用小知识总结 (一),转http://blog.csdn.net/myiszjf/article/details/10007431

在上一篇中,我们以经介绍了程序的流程和框架,在本篇将详细讨论各个功能的实现主要包括1.获取磁盘信息2.获取目录信息3.获取文件信息4.运行指定文件5.删除指定文件6.删除指定目录7.创建指定目录8.上传下载文件9.获取远程文件图标获取磁盘信息磁盘信息可以用API GetDriveType来实…

Linux下快速分区格式化大于2T大容量存储

在生产环境中&#xff0c;我们会遇到分区大于2T的磁盘&#xff08;比如&#xff1a;添加一个10TB的存储&#xff09;&#xff0c;由于MBR分区表只支持2T磁盘&#xff0c;所以大于2T的磁盘必须使用GPT分区表&#xff0c;而我们在做raid时会划分多个VD来进行装系统&#xff0c;但…

ubuntu18.04 Desktop版本部署13.2.6版本ceph

文章目录选择系统安装系统网络配置CEPH部署想要查看版本较高的ceph在进行录像业务存储且在磁盘占用率在70%左右时且ceph底层出现slow_request是否会对上层录像业务造成显性影响 所以需要在ubuntu 18.04版本部署mimic版本ceph&#xff0c;先将部署步骤描述如下&#xff1a; 选…

java获取ajax上传的文件,Java使用Ajax异步上传文件

相关代码示例:html代码片段:名称class"layui-input">描述文件请选择配置文件立即提交重置js代码片段://上传配置文件$("#save_config_file").click(function () {var name $("#config_name").val();var desc $("#config_desc").v…

hdu 1423

最长公共上升子序列&#xff1a;O(n*m)的算法&#xff1b; 1 #include<cstdio>2 #include<cstring>3 #define maxn 10004 using namespace std;5 int a[maxn],b[maxn],f[maxn];6 int main()7 {8 int t,n,m;9 scanf("%d",&t); 10 while(t…

从HP发布BSM新版套件看网管与安管的融合

2012年11月底&#xff0c;HP发布了新版的BSM套件。在这个新的套件有一个BSM与ArcSight Logger整合的方案。我之前在RSA2012大会观后感系列文章中也提及过HP的这个动向&#xff0c;就是将网管与安管整合的动向。他们正在按部就班地进行中。不过&#xff0c;由于他们的身躯过于庞…

PHP学习课程和培训方向学习路线分享

PHP学习课程和培训方向学习路线分享 php语言的优越性&#xff0c;集结了很多的开发爱好者&#xff0c;无论行业前景和个人发展来说&#xff0c;php正飞速的发展&#xff0c;php在不断兼容着类似closures和命名空间 等技术&#xff0c;同时兼顾性能和当下流行的框架。版本是7之后…

编译ceph源码:cython module not found问题的解决

环境&#xff1a;centos7.5 ceph版本:12.2.1 在当前环境对ceph源码rpm包进行重新编译 执行命令rpmbuild --rebuild ceph-12.2.1-0.el7.src.rpm 最后出现错误如下&#xff1a; Could not find cython3. Please install Cython. 查看此时对Cython3模块的编译规则 vim /BUILD/ce…

把mysql 中的字符gb2312 改为gbk的方法

第一步&#xff1a;查找mysql的字符: mysql> show variables like %char%;------------------------------------------------------------| Variable_name | Value |------------------------------------------------------------|…