Coffee Chicken
Posted liulex
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Coffee Chicken相关的知识,希望对你有一定的参考价值。
字符串斐波那契
输出第s[n]个字符串的第k位及后十位
暴力算出前20项,超过20,跑dfs
#include<bits/stdc++.h> using namespace std; string s[1000]; typedef long long ll; ll n,k; ll A[500]; string _s[100]; void dfs(ll k,int x,int len)///k开始位置,x这一段是由哪个字符串拼接成的,k后取len位 if(x<=20) for(int i=k-1; i<min(A[x],k+len-1); i++) cout<<s[x][i]; return; if(k>A[x-2]) k-=A[x-2]; dfs(k,x-1,len); else if(k+len<A[x-2]) dfs(k,x-2,len); else dfs(k,x-2,A[x-2]-k+1); dfs(A[x-2]+1,x-1,len-A[x-2]+k-1); int main() s[1]="COFFEE"; s[2]="CHICKEN"; A[1]=s[1].length(); A[2]=s[2].length(); for(int i=3; i<=20; i++) s[i]=s[i-2]+s[i-1]; A[i]=A[i-2]+A[i-1]; int t; scanf("%d",&t); for(int i=21; i<=57; i++) A[i]=A[i-1]+A[i-2]; while(t--) scanf("%lld%lld",&n,&k); if(n<=20) for(int i=k-1; i<min(k+9,A[n]); i++) cout<<s[n][i]; cout<<‘\n‘; else if(n<=57) dfs(k,n,10); cout<<‘\n‘; else if(n>57) if((n&1)) dfs(k,57,10); cout<<‘\n‘; else dfs(k,56,10); cout<<‘\n‘;
以上是关于Coffee Chicken的主要内容,如果未能解决你的问题,请参考以下文章
Linux VM/nodejs 问题:Nodemon、Coffee 等未执行