BZOJ2796: [Poi2012]Fibonacci Representation
2017-03-06 14:02
369 查看
记忆化搜索
所以其实就是乱搜吗….
1017在fib数列里好像就70~80左右的地方,所以数据的数量不多,寻找x的解可以二分找到x大概在fib的哪个位置,然后找x和左右项的差的绝对值y
所以其实就是乱搜吗….
1017在fib数列里好像就70~80左右的地方,所以数据的数量不多,寻找x的解可以二分找到x大概在fib的哪个位置,然后找x和左右项的差的绝对值y
#include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<cmath> #include<ctime> #include<bitset> #include<string> #include<vector> #include<cstdio> #include<cstdlib> #include<cstring> #include<climits> #include<complex> #include<iostream> #include<algorithm> #define ll long long using namespace std; void down(int &x,int y){if(x>y)x=y;} const int maxn = 88; map<ll,int>h; ll n; ll f[maxn]; int find_(ll x) { int l=2,r=85; while(l<=r) { int mid=(l+r)>>1; if(x<f[mid]) r=mid-1; else l=mid+1; } return l-1; } ll solve(ll x) { int k=find_(x); int ans=233; ll cl=abs(f[k]-x); if(h.count(cl)>0) ans=h[cl]; else ans=solve(cl); cl=abs(f[k+1]-x); if(h.count(cl)>0) down(ans,h[cl]); else { int l=solve(cl);if(ans>l)ans=l; } h[x]=ans+1; return ans+1; } int main() { h[0]=0; f[1]=1; for(int i=2;i<maxn;i++) f[i]=f[i-1]+f[i-2],h[f[i]]=1; int t; scanf("%d",&t); while(t--) { scanf("%lld",&n); if(h.count(n)>0) printf("%d\n",h ); else printf("%d\n",solve(n)); } return 0; }
相关文章推荐
- [BZOJ2796][Poi2012]Fibonacci Representation
- [BZOJ 2796]POI2012 Fibonacci Representation
- BZOJ 2796: [Poi2012]Fibonacci Representation
- 【POI2012】【BZOJ2796】Fibonacci Representation
- 【bzoj2796】 [Poi2012]Fibonacci Representation
- bzoj 2796[Poi2012]Fibonacci Representation 贪心
- bzoj2796 [Poi2012]Fibonacci Representation 贪心
- bzoj 2796: [Poi2012]Fibonacci Representation 记忆化搜索
- BZOJ2796 [Poi2012]Fibonacci Representation
- 【bzoj2796】 [Poi2012]Fibonacci Representation
- 2796: [Poi2012]Fibonacci Representation
- BZOJ2803: [Poi2012]Prefixuffix
- BZOJ 2797 Poi2012 Squarks
- BZOJ 2791 Poi2012 Rendezvous 倍增LCA
- bzoj 2802: [Poi2012]Warehouse Store
- bzoj 2797 [Poi2012]Squarks set 数学
- 【BZOJ 2791】 2791: [Poi2012]Rendezvous (环套树、树链剖分LCA)
- [JZOJ5442]【NOIP2017提高A组冲刺11.1】荒诞([BZOJ3060]【POI2012】Tour de Byteotia)
- BZOJ2793: [Poi2012]Vouchers
- [BZOJ2795][Poi2012]A Horrible Poem