[斐波那契拆分 乱搞 数学] 51Nod 1350 斐波那契表示
来源:互联网 发布:知乎 淘宝办公室零食 编辑:程序博客网 时间:2024/05/17 08:31
可以证明每次选最大的fib数减去一定是最优解之一
然后预处理G[fib[i]-1]
额 代码横跨noip前后 意识模糊 一片mess
#include<cstdio>#include<cstdlib>#include<algorithm>#include<map>using namespace std;typedef long long ll;ll fib[205]; int maxn;ll F[205];inline ll Sum(ll n){ if (n==0) return 0; if (n==1) return 1; if (n==2) return 2; ll ret=0; int pos=upper_bound(fib,fib+maxn+1,n)-fib-1; ret=F[pos]+Sum(n-fib[pos])+n-fib[pos]+1; return ret;}int main(){ ll T,n; freopen("t.in","r",stdin); freopen("t.out","w",stdout); fib[0]=0; fib[1]=1; F[2]=0; F[3]=1; F[4]=2; for (int i=2;;i++){ fib[i]=fib[i-1]+fib[i-2]; if (fib[i]-1>2) F[i]=F[i-1]+F[i-2]+fib[i-2]; maxn=i; if (fib[i]>1e17) break; } scanf("%lld",&T); while (T--) scanf("%lld",&n),printf("%lld\n",Sum(n)); return 0;}
0 0
- [斐波那契拆分 乱搞 数学] 51Nod 1350 斐波那契表示
- 51nod 1350 斐波那契表示 (数学)
- 51Nod-1350-斐波那契表示
- 51nod 1350 斐波那契表示
- 51nod-1350:斐波那契表示
- 51nod-1350 斐波那契表示(规律)
- 51nod 1350 斐波那契表示(规律)
- 51NOD 1350 斐波那契表示 规律+递归
- 51nod 1350 斐波那契表示 规律题
- 51nod 1350 斐波那契表示
- 【斐波那契数列】51Nod 1350 斐波那契表示
- 51nod 1350 斐波那契表示【斐波那契数列】
- 51nod-斐波那契表示(找规律)
- 51nod 1350 斐波那契表示(打表+找规律)
- 斐波那契数的数学封闭式表示
- P1755 斐波那契的拆分
- 51nod 1355 斐波那契的最小公倍数 莫比乌斯反演+数学
- 51nod 1070 斐波那契博弈
- Android ListView上下滑动与item左右滑动冲突解决
- gpio_request分析
- java并发编程----并发模型
- Lua编程笔录--Lua初识及语法八(错误处理及垃圾回收器)
- 重建二叉树
- [斐波那契拆分 乱搞 数学] 51Nod 1350 斐波那契表示
- 十二章
- Gradle目录解析
- 判断是否是平板
- iOS 格式化输出 不足补0
- 光流跟踪相关总结
- Linux Makefile编写
- 高效使用AndroidStudio常用快捷操作
- Android 好用的框架整合集合