• KI的斐波那契_DFS


    Description

    KI十分喜欢美丽而优雅的斐波那契数列,最近他新认识了一种斐波那契字符串,定义如下

    f (0) = b, f (1) = a,

    f (2) = f (1) + f (0) = ab,

    f (3) = f (2) + f (1) = aba,

    f (4) = f (3) + f (2) = abaab,

    ......

    KI想知道 f (n) 中的第 m 位是什么,你可以帮他解决这个问题吗?

    Input

    第一行有一个整数 T ,表示测试组数。

    接下来的每个测试组包含两个数 n, m 

    数据范围: T 1000, 0  n  90, 1  m  1e18

    Output

    对于每个测试组,输出’a’或者’b’

    Sample Input

    5
    4 1
    5 3
    10 22
    22 233
    66 2333333333333
    

    Sample Output

    a
    a
    a
    b
    a
    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    const int N=1000;
    
    long long int f[N];
    void init()
    {
        f[0]=1;
        f[1]=1;
        for(int i=2;i<=90;i++)
        {
            f[i]=f[i-1]+f[i-2];
        }
    }
    void dfs(long long int n,long long int m)
    {
        if(n==1)
        {
            puts("a");
            return;
        }
        if(n==2)
        {
            if(m==1)
                puts("a");
            else puts("b");
            return;
        }
        if(m>f[n-1]) dfs(n-2,m-f[n-1]);
        else dfs(n-1,m);
    }
    
    int main(){
        int t;
        scanf("%d",&t);
        init();
        while(t--){
            long long int n,m;
            scanf("%lld %lld",&n,&m);
            dfs(n,m);
    
        }
    }
  • 相关阅读:
    遗传算法的理解
    使用Grub Rescue 修复MBR
    java 虚拟机与并发处理几个问题简要(二)
    java 虚拟机与并发处理几个问题简要(一)
    Fence Repair POJ
    Best Cow Line---POJ 3617(贪心)
    迷宫的最短路径
    最大子段和
    Lake Counting --POJ 2386
    Ants POJ
  • 原文地址:https://www.cnblogs.com/iwantstrong/p/6102873.html
Copyright © 2020-2023  润新知