• Coffee Chicken (斐波那契字符串)——递归


    S(1) = {"COFFEE"} 
    S(2) = {"CHICKEN"}
    S(n) = S(n-2) :: S(n-1)

    1 ≤ n ≤500,1 ≤ k ≤ min{∣S(n)∣,1012 }

    给n和k 求出S(n)从第k位开始往后的10的字符

    递归定位,枚举10个位

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    #define inf 0x3f3f3f3f
    const int maxn=505;
    const ll N=1e12+10;
    ll f[maxn];
    string s[550];
    int num;
    void solve(int n,ll k) {
        if(n==1) cout<<s[1][k-1];
        else if(n==2) cout<<s[2][k-1];
        else {
            if(k>f[n-2]) solve(n-1,k-f[n-2]);
            else if(k<=f[n-2]) solve(n-2,k);
        }
    }
    int main( ) {
        ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
        int t;
        cin>>t;
        f[1]=6; f[2]=7;
        for(int i=3;i<=500;i++) f[i]=min(f[i-1]+f[i-2],N);
        s[1]="COFFEE"; s[2]="CHICKEN";
        while(t--) {
            int n; ll k;
            cin>>n>>k;
    //        cout<<f[n]<<endl;
            num=0;
            for(ll i=k;i<min(f[n]+1,k+10);i++) solve(n,i);
            cout<<endl;
        }
        return 0;
    }
  • 相关阅读:
    枚举定义三个常量--遍历如下
    初始化和赋值的概念
    javascript 事件
    HTML 5 本地存储
    html5 说明
    JQuery 双击动态编辑
    ThinkPHP 3.2.2 事务
    PHP AJAX JSONP实现跨域请求使用实例
    chorme 插件
    frontend-tools
  • 原文地址:https://www.cnblogs.com/iwomeng/p/11556591.html
Copyright © 2020-2023  润新知