【bzoj2796】 [Poi2012]Fibonacci Representation
2017-05-20 08:48
246 查看
给出一个数字,用FIB数列各项加加减减来得到。
问最少要多少个(可以重复使用)
大概试了一下,fibonacci数列的增长是很快的,大概到了90+项就超过了题目范围……
所以每次找一个最近的fibonacci数试一下就好,实测跑得飞快。
问最少要多少个(可以重复使用)
大概试了一下,fibonacci数列的增长是很快的,大概到了90+项就超过了题目范围……
所以每次找一个最近的fibonacci数试一下就好,实测跑得飞快。
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 ll f[100],n,m; 5 inline ll read(){ 6 ll f=1,x=0;char ch; 7 do{ch=getchar();if(ch=='-')f=-1;}while(ch<'0'||ch>'9'); 8 do{x=x*10+ch-'0';ch=getchar();}while(ch>='0'&&ch<='9'); 9 return f*x; 10 } 11 int work(ll x){ 12 if(!x)return x;int i; 13 for(i=1;f[i]<x;i++); 14 return work(min(f[i]-x,x-f[i-1]))+1; 15 } 16 int main(){ 17 f[0]=1;f[1]=1; 18 for(int i=2;i<=91;i++)f[i]=f[i-1]+f[i-2]; 19 int T=read(); 20 while(T--){ 21 n=read(); 22 printf("%d\n",work(n)); 23 } 24 return 0; 25 }
相关文章推荐
- [BZOJ2796][Poi2012]Fibonacci Representation
- 【POI2012】【BZOJ2796】Fibonacci Representation
- BZOJ2796: [Poi2012]Fibonacci Representation
- bzoj2796 [Poi2012]Fibonacci Representation 贪心
- [BZOJ 2796]POI2012 Fibonacci Representation
- bzoj 2796: [Poi2012]Fibonacci Representation 记忆化搜索
- BZOJ 2796: [Poi2012]Fibonacci Representation
- BZOJ2796 [Poi2012]Fibonacci Representation
- bzoj 2796[Poi2012]Fibonacci Representation 贪心
- 【bzoj2796】 [Poi2012]Fibonacci Representation
- BZOJ2789 : [Poi2012]Letters
- 【BZOJ2797】[Poi2012]Squarks 暴力乱搞
- BZOJ2788: [Poi2012]Festival 差分约束
- BZOJ2798: [Poi2012]Bidding
- BZOJ2803: [Poi2012]Prefixuffix
- 2796: [Poi2012]Fibonacci Representation
- BZOJ2802 [Poi2012]Warehouse Store 【贪心】
- BZOJ 2793: [Poi2012]Vouchers(调和级数)
- bzoj2793: [Poi2012]Vouchers
- [BZOJ 2803]Poi2012 Prefixuffix