CDOJ 1139 菲波拉契数制升级版 dp
来源:互联网 发布:java 增量覆盖率 编辑:程序博客网 时间:2024/05/17 08:21
唔,做法的话,当年的PPT上讲的挺详细的,回头再来补一发吧
贴代码 ,好久没见的1A了:
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <string>using namespace std;#define ll long long#define maxn 1000000000000000000ll Fib[88];int A[90], Num[88];int dp[90][2];inline void MakeFib(){Fib[0] = 0;Fib[1] = 1;Fib[2] = 2;for (int i = 3; i < 88; i++){Fib[i] = Fib[i - 1] + Fib[i - 2];if (Fib[i]>maxn)break;}}int main(){int T;ll n;MakeFib();scanf("%d", &T);while (T--){scanf("%lld", &n);int l = 0;for (int i = 87; i > 0; --i){if (n >= Fib[i]){Num[l++] = i;n -= Fib[i];}}Num[l] = 0;for (int i = l - 1; i >= 0; --i){A[l - 1 - i] = Num[i] - Num[i + 1] - 1;}dp[0][0] = A[0] / 2, dp[0][1] = 1;for (int i = 1; i < l; ++i){dp[i][1] = dp[i - 1][1] + dp[i - 1][0];dp[i][0] = dp[i - 1][1] * (A[i] / 2) + dp[i - 1][0] * ((A[i] + 1) / 2);}printf("%d\n", dp[l - 1][0] + dp[l - 1][1]);}return 0;}
0 0
- CDOJ 1139 菲波拉契数制升级版 dp
- uestc1139菲波拉契数制升级版
- CDOJ 1133 菲波拉契数制 01背包
- cdoj 1131 区间dp
- CDOJ 1136(数位DP)
- CDOJ 1351(树形DP)
- CDOJ 1346(斜率DP)
- CDOJ 1135 邱老师看电影 概率dp
- CDOJ 1135 邱老师看电影 概率dp
- CDOJ 1307 ABCDE dp, 前缀和优化
- CDOJ 1321 区间DP 解题报告
- UESTC 菲波拉契数制
- uestc1133菲波拉契数制
- 数制
- 数制
- Codevs 4829 [DP]数字三角形升级版
- Codevs 4829 [DP]数字三角形升级版
- CDOJ邱老师选妹子(数位DP)
- 【Spring实战】—— 2 构造注入
- 更改printk打印级别
- 定位数据库死锁
- 【慕课笔记】5-1 四种XML解析方式大PK—四种解析方式的分析
- 继 <ZMQ的学习和研究> 学习代码 Multiple socket reader in C++
- CDOJ 1139 菲波拉契数制升级版 dp
- c语言词法分析器实验程序(c语言版)
- NATS学习 -- 概念学习之消息(Message)与发布订阅(Publish Subscribe)
- 字符编码
- 适配item的不同高度决定ListView的高度
- 用c写cgi程序,不能在cgi程序中执行shell命令
- Mybatis-Spring整合
- 如何调整压力测试工具
- HTTP 表单编码 enctype