HDU 1708 Fibonacci String(数学题)
2014-09-15 20:40
302 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1708
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
= 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
Sample Output
Author
linle
Source
HDU 2007-Spring Programming Contest
PS:
记录斐波那契的数组当时傻逼了也开成了26,导致WA了几把都找不到原因!
图样图森破!
代码如下:
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
= 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
HDU 2007-Spring Programming Contest
PS:
记录斐波那契的数组当时傻逼了也开成了26,导致WA了几把都找不到原因!
图样图森破!
代码如下:
#include <cstdio> #include <cstring> int main() { int t; char s0[30], s1[30]; int k, a0[26], a1[26]; int c[50]; c[0] = 0, c[1] = 1; for(int i = 2; i <= 50; i++) { c[i] = c[i-1] + c[i-2]; } scanf("%d",&t); while(t--) { memset(s0,0,sizeof(s0)); memset(s1,0,sizeof(s1)); memset(a0,0,sizeof(a0)); memset(a1,0,sizeof(a1)); scanf("%s%s%d",s0,s1,&k); for(int i = 0; i < strlen(s0); i++) { int tt = s0[i]-'a'; a0[tt]++; } for(int i = 0; i < strlen(s1); i++) { int tt = s1[i]-'a'; a1[tt]++; } for(int i = 0; i < 26; i++) { if(k == 0) { printf("%c:%d\n",'a'+i,a0[i]); } else printf("%c:%d\n",'a'+i,a0[i]*c[k-1]+a1[i]*c[k]); } printf("\n"); } return 0; }
相关文章推荐
- HDU1013一个简单的数学题
- hdu 2114 数学公式!!!
- HDU 4985 Little Pony and Permutation(数学 置换群)
- HDU 1390 Binary Numbers(数学题)
- 数学hdu5072
- HDU 5478 Can you find it (数学_随机化,取特殊值!!!)
- hdu 3853(数学期望入门)
- hdu 5793 A Boring Question 数学
- HDU 4163 Stock Prices(简单数学)
- HDU 5135 Little Zu Chongzhi's Triangles(数学题)
- HDU 5984 ACM-ICPC Regional QingDao(数学期望)
- hdu 5142(数学-进制转换)
- hdu 2080 夹角有多大II (数学)
- HDU 5054 Alice and Bob(数学)
- HDU - 4810 Wall Painting(组合数学)
- HDU 1018 Big Number(数学知识)
- [构造 数学推导] HDU 5847 Different Sums
- hdu 1110 Equipment Box(数学)
- hdu_1708_Fibonacci String
- hdu-5719 Arrange(组合数学)