bzoj 2660: [Beijing wc2012]最多的方案【dp】
有点神奇的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;
}
bzoj 2660: [Beijing wc2012]最多的方案【dp】的更多相关文章
- bzoj 2660: [Beijing wc2012]最多的方案
Time Limit: 5 Sec Memory Limit: 128 MB Submit: 617 Solved: 361[Submit][Status][ ...
- bzoj2660: [Beijing wc2012]最多的方案
题目链接 bzoj2660: [Beijing wc2012]最多的方案 题解 对于一个数的斐波那契数列分解,他的最少项分解是唯一的 我们在拆分成的相临两项之间分解后者,这样形成的方案是最优且不重的 ...
- bzoj千题计划213:bzoj2660: [Beijing wc2012]最多的方案
http://www.lydsy.com/JudgeOnline/problem.php?id=2660 很容易想到是先把n表示成最大的两个斐波那契数相加,然后再拆分这两个斐波那契数 把数表示成斐波那 ...
- BZOJ 2660 (BJOI 2012) 最多的方案
Description 第二关和很出名的斐波那契数列有关,地球上的OIer都知道:F1=1, F2=2, Fi = Fi-1 + Fi-2,每一项都可以称为斐波那契数.现在给一个正整数N,它可以写成一 ...
- BZOJ 2662: [BeiJing wc2012]冻结(最短路)
这道题和 BZOJ 2763飞行路线 几乎一模一样..然后飞行路线我是1A,这道题WA了4次,我开始怀疑我的智商了.. ---------------------------------------- ...
- Bzoj 2662: [BeiJing wc2012]冻结 dijkstra,堆,分层图,最短路
2662: [BeiJing wc2012]冻结 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 647 Solved: 348[Submit][Sta ...
- bzoj 2659: [Beijing wc2012]算不出的算式
2659: [Beijing wc2012]算不出的算式 Time Limit: 3 Sec Memory Limit: 128 MB Description 算不出的算式背景:曾经有一个老掉牙的游 ...
- BZOJ 2661: [BeiJing wc2012]连连看 费用流
2661: [BeiJing wc2012]连连看 Description 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭 ...
- BZOJ 2663: [Beijing wc2012]灵魂宝石
2663: [Beijing wc2012]灵魂宝石 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 261 Solved: 108[Submit][S ...
随机推荐
- linux date 格式化时间和日期
[root@108test ~]# date -d today +"%Y-%m-%d" 2008-05-07 [root@108test ~]# date -d today + ...
- python学习之-- IO多路复用 select模块
python I/O多路复用包括3个模块,上一篇已经说过概念,这里我使用的是select模块实现一个ftp并发 服务器端核心代码: import socket,select import queue, ...
- Python数据分析常用的库总结
Python之所以能够成为数据分析与挖掘领域的最佳语言,是有其独特的优势的.因为他有很多这个领域相关的库可以用,而且很好用,比如Numpy.SciPy.Matploglib.Pandas.Scikit ...
- Partition List(链表的插入和删除操作,找前驱节点)
Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...
- [Bzoj4517]排列技术(错排 + 预处理)
4517: [Sdoi2016]排列计数 Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 1508 Solved: 915[Submit][Statu ...
- SSM!这就是你要的条条框框!
第一次写博 1.导jar包 2,.表和实体类 实体类:com.bao.entity[Student] private int stuNo; private String stuName; privat ...
- 关于Java第一次实验的对课后问题自己的理解--验证码实现及其四则运算
问题一.对于课上ppt中EnumTest所提出的的问题进行解答 将这段代码放到文件中进行运行后发现 1.对应的Size中不同元素的并不是同一个对象 2.以其中一个枚举类型s来说,不是原始数据,即他们都 ...
- 【Nginx】发送响应
请求处理完毕后,需要向用户发送http响应,告知客户端Nginx的执行结果.http响应主要包括响应行.响应头部.包体三部分.发送http响应时需要执行发送http头部(发送http头部时也会发送响应 ...
- Android网络通信之Socket
在移动APP开发中.网络通信数据传输是必定存在的.移动APP离开了网络通信数据传输的功能方式,就好比一潭死水,永远都 是原来的样子. 提到网络通信传输数据.首先出如今程序猿脑海中的是HTTP协议传输, ...
- 自动填充输入框 Asp .Net Mvc
1 效果 当在一个文本框中输入时,可以自动查找相关选项,然后加载出来以供参考 2 前台代码 <link href="~/Content/themes/base/jquery-u ...