程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> BZOJ 1002: [FJOI2007]輪狀病毒 遞推/基爾霍夫矩陣樹定理

BZOJ 1002: [FJOI2007]輪狀病毒 遞推/基爾霍夫矩陣樹定理

編輯:C++入門知識

BZOJ 1002: [FJOI2007]輪狀病毒 遞推/基爾霍夫矩陣樹定理


 

f[n]=3*f[n-1]-f[n-2]+2

 

1002: [FJOI2007]輪狀病毒

Time Limit: 1 Sec Memory Limit: 162 MB
Submit: 2959 Solved: 1644
[Submit][Status][Discuss]

Description

給定n(N<=100),編程計算有多少個不同的n輪狀病毒。

\

Input

第一行有1個正整數n。

Output

將編程計算出的不同的n輪狀病毒數輸出

Sample Input

3

Sample Output

16

 

 

 

/**************************************************************
    Problem: 1002
    User: CKboss
    Language: Java
    Result: Accepted
    Time:888 ms
    Memory:14824 kb
****************************************************************/
 
import java.util.*;
import java.math.*;
 
 
public class Main {
     
    BigInteger[] ct = new BigInteger[120];
     
    void init(){
        ct[1]=BigInteger.valueOf(1);
        ct[2]=BigInteger.valueOf(5);
        ct[3]=BigInteger.valueOf(16);
         
        for(int i=4;i<=100;i++){
            ct[i]=ct[i-1].multiply(BigInteger.valueOf(3)).subtract(ct[i-2]).add(BigInteger.valueOf(2));
        }
    }
     
    Main(){
        Scanner in = new Scanner(System.in);
        init();
        int n=in.nextInt();
        System.out.println(ct[n]);
    }
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new Main();
    }
 
}


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved