HDU 1865 1sting

来源:互联网 发布:伦敦金投资软件 编辑:程序博客网 时间:2024/05/21 06:46

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1865


1sting

Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4795    Accepted Submission(s): 1800


Problem Description

You will be given a string which only contains ‘1’; You can merge two adjacent ‘1’ to be ‘2’, or leave the ‘1’ there. Surly, you may get many different results. For example, given 1111 , you can get 1111, 121, 112,211,22. Now, your work is to find the total number of result you can get.
 

Input

The first line is a number n refers to the number of test cases. Then n lines follows, each line has a string made up of ‘1’ . The maximum length of the sequence is 200.
 

Output

The output contain n lines, each line output the number of result you can get .
 

Sample Input

311111111
 

Sample Output

128
 

Author

z.jt
 

Source

2008杭电集训队选拔赛——热身赛
 

Recommend

lcy

思路:很明显的斐波那契数列。数据太大,用java实现。


附上AC代码:

import java.util.Scanner;import java.math.BigInteger;public class Main {final static int MAXN = 205;public static void main(String[] args) {// TODO Auto-generated method stubBigInteger fib[] = new BigInteger[MAXN];fib[0] = fib[1] = BigInteger.ONE;for (int i=2; i<fib.length; ++i)fib[i] = fib[i-1].add(fib[i-2]);Scanner in = new Scanner(System.in);int T = in.nextInt();while (T-- > 0){String str = in.next();System.out.println(fib[str.length()]);}in.close();}}


1 0