hdu 1041

来源:互联网 发布:淘宝如何分销 编辑:程序博客网 时间:2024/04/29 12:28

00的产生必然由n-1组的01产生,即00的个数等于n-1组01的个数。n-1组01的产生有两个来源。

1).由n-2组的1变幻而来

2).由n-2组的00变幻1010,其中一个00只能变幻一个01.

可以推出第n组00的个数b[n]=b[n-2]+第n-2组1的个数(2^(n-3));

import java.math.*;import java.util.*;public class Main  {  public static void main(String args[]){Scanner cin=new Scanner(System.in);BigInteger a[]=new BigInteger[1001];BigInteger b[]=new BigInteger[1001];b[2]=a[0]=BigInteger.ONE;b[1]=b[0]=BigInteger.ZERO;for(int i=1;i<1001;i++){a[i]=a[i-1].multiply(BigInteger.valueOf(2));if(i>=3)b[i]=a[i-3].add(b[i-2]);}while(cin.hasNext()){int n=cin.nextInt();System.out.println(b[n]);}}}



原创粉丝点击