zoukankan      html  css  js  c++  java
  • [HDU5686]2016"百度之星"

    题目大意:给你n,规定一个串中相邻的两个1可以合并为一个2(别的不行),让你求长度为n的全1串最多能变成多少种不同的串。

    解题思路:我们先来找一波规律,发现n=1,2,3,4,5时答案分别为1,2,3,5,8。

    嗯?斐波那契数列?没错就是这样。不过斐波那契数列的第200项好像有四五十位,long long也存不下?

    Java大法好,不用打烦人的高精度!当然时间就比较慢了。

    Java Code:

    import java.io.*;
    import java.math.*;
    import java.util.*;
    public class Main {
    	public static void main(String[] args){
    		Scanner in=new Scanner(System.in);
    		BigInteger f[]=new BigInteger[202];
    		f[1]=f[0]=new BigInteger("1");
    		for(int i=2;i<=200;++i)f[i]=f[i-1].add(f[i-2]);
    		while(in.hasNext()){
    			int n=in.nextInt();
    			System.out.println(f[n]);
    		}
    	}
    }
    
  • 相关阅读:
    vc++ 编译器工具
    lesson 17 进程间通信 孙鑫 VC++
    VC++ msdn
    VC++ 相关问题
    MySQL
    Git
    Angular
    Linux
    阿里云服务器
    Git
  • 原文地址:https://www.cnblogs.com/Mrsrz/p/7366941.html
Copyright © 2011-2022 走看看