Fibonacci String 1708
来源:互联网 发布:数码暴龙网络侦探攻略 编辑:程序博客网 时间:2024/06/03 14:49
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 ?
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.
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.
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
1ab bc 3
Sample Output
a:1b:3c:2d:0e:0f:0g:0h:0i:0j:0k:0l:0m:0n:0o:0p:0q:0r:0s:0t:0u:0v:0w:0x:0y:0z:0AC代码#include <cstdio>#include <map>#include <string>#include <algorithm>#include <iostream>int main(int argc, const char* argv[]){ int nCases = 0; scanf("%d", &nCases); while (nCases--) { int k; std::string sz0, sz1; std::cin >> sz0 >> sz1 >> k; ///初始化第一个与第二个 std::map<char, __int64> map_a, map_b, map_c; for (char ch= 'a'; ch <= 'z'; ++ch) { map_a[ch] = count(sz0.begin(), sz0.end(), ch); map_b[ch] = count(sz1.begin(), sz1.end(), ch); } ///模拟向后加 for (int i=2; i<=k; ++i) { if (i%3 == 2) { for (char ch= 'a'; ch <= 'z'; ++ch) { map_c[ch] = map_a[ch] + map_b[ch]; } } if (i%3 == 0) { for (char ch= 'a'; ch <= 'z'; ++ch) { map_a[ch] = map_b[ch] + map_c[ch]; } } if (i%3 == 1) { for (char ch= 'a'; ch <= 'z'; ++ch) { map_b[ch] = map_a[ch] + map_c[ch]; } } } ///输出结果 if (k%3 == 0) { for (char ch= 'a'; ch <= 'z'; ++ch) { printf("%c:%I64d\n", ch, map_a[ch]); } } else if (k%3 == 1) { for (char ch= 'a'; ch <= 'z'; ++ch) { printf("%c:%I64d\n", ch, map_b[ch]); } } else { for (char ch= 'a'; ch <= 'z'; ++ch) { printf("%c:%I64d\n", ch, map_c[ch]); } } printf("\n"); } return 0;}
0 0
- hdu 1708 Fibonacci String
- HDU 1708 Fibonacci String
- 【HDOJ】1708 -> Fibonacci String
- HDU 1708 Fibonacci String
- Fibonacci String 1708
- hdu 1708 Fibonacci String
- hdu 1708 Fibonacci String
- HDU 1708 Fibonacci String
- hdoj-1708-Fibonacci String
- hdu 1708 Fibonacci String
- HDOJ 1708 Fibonacci String
- hdoj.1708 Fibonacci String 20141018
- 杭电1708Fibonacci String
- HDOJ(HDU) 1708 Fibonacci String
- hdu 1708 Fibonacci String (递推)
- HDU 1708 Fibonacci String(数学题)
- 杭电 HDU ACM 1708 Fibonacci String
- HDU 1708 Fibonacci String(字符串模拟)
- 第12周——protected继承
- 不容错过!开发者必备的十二大Android开发资源
- 十二大Android开发资源
- modelsim SE-64 10.1c 波形加载慢的问题解决办法
- PHP filter_input() 详解
- Fibonacci String 1708
- 年月日三下拉框联动
- C#打印EXCEL(一)
- Instruments-Automation: 通过命令行运行测试用例
- .net 调用webservice 总结
- php配置可调用curl函数的方法
- 给表格添加滚动条
- C#控件集DotNetBar安装及破解
- CSS基础知识梳理-background