[HDU5686]2016"百度之星" - 资格赛 Problem B
2024-08-31 11:42:48
题目大意:给你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]);
}
}
}
最新文章
- Spinner
- [ImportNew] Perforce - Restoring Mistakenly Deleted Files in Workspace
- install skype4.3 in ubuntu15.04
- Advanced SQL
- 继续推广我的新博客xysay:http://www.xysay.com/
- 结构体 row_prebuilt_t
- 【转】Android自定义控件
- 通过项目逐步深入了解Mybatis<;四>;
- keepalived配置文件
- String.equals()方法
- Swift Runtime ?
- 如何在Win10下安装MySQL 5.7绿色版
- 1017. Queueing at Bank (25) - priority_queuet
- CSS3基础入门03
- ASP+中文显示之两种解决方法
- 2018-04-27 搭建Python官方文档翻译环境-汉化示例代码
- 十九、Linux 进程与信号---环境表
- 复制id_rsa命令
- PTA——32位前导零
- python之tkinter使用-多选框实现开关操作