有点神奇的dp

首先注意到任意一个数都能被表示成若干个斐波那契数的和的形式

先求出n可以字典序最大的表示

设f[i][0/1]表示第i个斐波那契数选或者不选

如果当前数不选,那就选比他小的两个数,否则,需要不选比他小的两个数(连续的影响)

#include<iostream>
#include<cstdio>
using namespace std;
const int N=105;
long long n,a[N],s[N],top,f[N][2];
int main()
{
scanf("%lld",&n);
a[0]=1,a[1]=1;
for(int i=2;i<=90;i++)
a[i]=a[i-2]+a[i-1];
for(int i=90;i>=1;i--)
if(n>=a[i])
n-=a[i],s[++top]=i;
f[top][0]=(s[top]-1)/2,f[top][1]=1;
for(int i=top-1;i>=1;i--)
{
f[i][1]=f[i+1][0]+f[i+1][1];
f[i][0]=((s[i]-s[i+1]-1)/2)*f[i+1][1]+((s[i]-s[i+1])/2)*f[i+1][0];
}
printf("%lld\n",f[1][0]+f[1][1]);
return 0;
}

最新文章

  1. SqlServer--代码创建约束
  2. swift学习笔记之-扩展(Extensions)
  3. AngularJS开发指南10:AngularJS依赖注入的详解
  4. Java 判断图片资源的存在否
  5. tar命令: 对某目录文件打tar包时,排除指定的目录或文件
  6. C#自定义控件的开发:Pin和Connector
  7. Word Ladder 解答
  8. MVC-03 控制器(4)
  9. 14.9.2 Specifying the Row Format for a Table 指定 表的行格式
  10. http://www.spasvo.com/ceshi/open/kyxncsgj/Jmeter/
  11. IE6 下 输入类型表单控件背景问题
  12. IOS 清除UIWebview的缓存以及cookie
  13. [线程]Thead 中传参数RuntimeError: thread.__init__() not called
  14. [JavaScript,Java,C#,C++,Ruby,Perl,PHP,Python][转]流式接口(Fluent interface)
  15. 使用shell脚本来自动化处理我们的工作,解放双手
  16. A1086. Tree Traversals Again
  17. MD5与SHA散列单项加密
  18. LeetCode--429--N叉树的层序遍历
  19. springboot----&gt;springboot的使用(一)
  20. tensorflow :ckpt模型转换为pytorch : hdf5模型

热门文章

  1. 动态规划:HDU 1114 Piggy-Bank
  2. Triangle(dp)
  3. HDU 2059 【DP】
  4. HTML DOM对象的属性和方法介绍(原生JS方法)
  5. css实现文字渐变
  6. 如何在Win7 x64上的配置32位的PostgreSQL ODBC数据源
  7. Spring4.0MVC学习资料,注解自己主动扫描bean,自己主动注入bean(二)
  8. VM虚拟机ping不通局域网其他主机的解决办法
  9. swiper插件制作轮播图swiper2.x和3.x区别
  10. Java基础面试:集合、内部类、线程