• Fibonacci String(hdu 1708)


    Fibonacci String

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 5008    Accepted Submission(s): 1690


    Problem Description
    After little Jim learned Fibonacci Number in the class , he was very interest in it.
    Now he is thinking about a new thing -- Fibonacci String .

    He defines : str[n] = str[n-1] + str[n-2] ( n > 1 ) 

    He is so crazying that if someone gives him two strings str[0] and str[1], he will calculate the str[2],str[3],str[4] , str[5].... 

    For example :
    If str[0] = "ab"; str[1] = "bc";
    he will get the result , str[2]="abbc", str[3]="bcabbc" , str[4]="abbcbcabbc" …………;

    As the string is too long ,Jim can't write down all the strings in paper. So he just want to know how many times each letter appears in Kth Fibonacci String . Can you help him ?
     
    Input
    The first line contains a integer N which indicates the number of test cases.
    Then N cases follow.
    In each case,there are two strings str[0], str[1] and a integer K (0 <= K < 50) which are separated by a blank.
    The string in the input will only contains less than 30 low-case letters.
     
    Output
    For each case,you should count how many times each letter appears in the Kth Fibonacci String and print out them in the format "X:N". 
    If you still have some questions, look the sample output carefully.
    Please output a blank line after each test case.

    To make the problem easier, you can assume the result will in the range of int. 
    Sample Input
    1
    ab bc 3
    Sample Output
    a:1
    b:3
    c:2
    d:0
    e:0
    f:0
    g:0
    h:0
    i:0
    j:0
    k:0
    l:0
    m:0
    n:0
    o:0
    p:0
    q:0
    r:0
    s:0
    t:0
    u:0
    v:0
    w:0
    x:0
    y:0
    z:0
     Author
    linle
     
    Source
     
    Recommend
    lcy   |   We have carefully selected several similar problems for you:  1709 1710 1711 1707 1701 
     
    水题,简单的递推。
     1 #include<iostream>
     2 #include<string.h>
     3 #include<queue>
     4 #include<stdio.h>
     5 #include<algorithm>
     6 using namespace std;
     7 char a[40];
     8 char b[40];
     9 int aa[26];
    10 int bb[26];
    11 int cc[26];
    12 int main(void)
    13 {
    14     int n,i,j,k,p,q;
    15     scanf("%d",&k);
    16     while(k--)
    17     {
    18         scanf("%s %s",a,b);
    19         memset(aa,0,sizeof(aa));
    20         memset(bb,0,sizeof(bb));
    21         scanf("%d",&p);
    22         int l=strlen(a);
    23         int r=strlen(b);
    24         for(i=0;i<l;i++)
    25         {aa[a[i]-'a']+=1;
    26         }
    27 
    28         for(i=0;i<r;i++)
    29         {
    30             bb[b[i]-'a']+=1;
    31         }
    32         if(p==0)
    33         {
    34             for(i=0;i<=25;i++)
    35             {
    36                 printf("%c:",i+'a');
    37                 printf("%d
    ",aa[i]);
    38             }
    39         }
    40         else if(p==1)
    41         {
    42                         for(i=0;i<=25;i++)
    43             {
    44                 printf("%c:",i+'a');
    45                 printf("%d
    ",bb[i]);
    46             }
    47         }
    48         else
    49         {
    50             for(i=0;i<p-1;i++)
    51             {
    52                 for(j=0;j<=25;j++)
    53                 {
    54                     cc[j]=aa[j]+bb[j];
    55                 }
    56                 for(j=0;j<=25;j++)
    57                 {
    58                     aa[j]=bb[j];
    59                 }
    60                 for(j=0;j<=25;j++)
    61                 {
    62                     bb[j]=cc[j];
    63                 }
    64             }
    65             for(i=0;i<=25;i++)
    66             {
    67               printf("%c:",i+'a');
    68               printf("%d
    ",cc[i]);
    69             }
    70         }printf("
    ");
    71 
    72     }
    73     return 0;
    74 }
    油!油!you@
  • 相关阅读:
    delegate
    Event
    SQL:删除重复数据,只保留一条
    c#符号
    linux下vim命令详解【转】
    Probabilistic latent semantic analysis【转】
    Ubuntu下如何使用虚拟机安装WindowsXP?(2)【转】
    C文件操作fopen打开标记设置问题【学习笔记】
    Plate notation【转】
    最大似然估计(Maximum likelihood estimation) 【转】
  • 原文地址:https://www.cnblogs.com/zzuli2sjy/p/5153121.html
Copyright © 2020-2023  润新知