poj2506(遞推 高精度)

2021-07-09 19:55:02 字數 715 閱讀 9699

題目大意:給出乙個n,代表乙個2*n的矩形地板,要求只用2*1和2*2兩種瓷磚將其完全覆蓋,求所有情況的數量

解題思路;求出遞推公式:f(n)=2*f(n-2)+f(n-1),這道題還有另外乙個關鍵點是高精度,因為題目提到n可能會達到250,因此答案的數字將會非常大,long long型照樣會爆掉,因此採用陣列模擬加法和乘法,開始的時候把第24行:if(c.num[len+1]!=0)c.len=len+1;寫成了if(c.num[len+1]!=0)c.len++;導致計算錯誤,找了很久才發現問題,全是淚……一定要細心啊

ac**:

#include #include using namespace std;

struct bignumdp[255];

void add(bignum a,bignum b,bignum &c)

// for(int i=len;i>=1;i--)cout<9)

}if(c.num[len+1]!=0)c.len=len+1;

else c.len = len;

}void multi2(bignum &x)

for(int i=1;i<=len;i++)

}if(x.num[len+1]!=0)x.len++;

}int main()

*/ while(cin>>n)

for(int i=dp[n].len;i>=1;i--)

{cout<

POJ 2506 遞迴 高精度

這題一開始自己做的是用二維陣列,結果發現傳參弄的太亂了 直接看人 了,恍然大悟啊。怎麼就沒想到用結構體陣列誒 直接貼人 了 遞迴加高精度。規律是算前幾個發現的,可是硬是從理論方面,不知道怎麼得來的。知道的大神們求教下。f n 2 f n 2 f n 1 poj2506 include include...

sgu284 Grammar 遞推 高精度

題目大意 有n個字串,每個字元為a或 b 第 i個字串可以表示為若干個a,b 和整數j j 表示第 j個字串 的組合。給定乙個新的字串 s 求s在第 n 個字串中出現了多少次。分析 很顯然的乙個遞推關係,處理一下合併的情況就好了,細節有一些,而且要用高精度。ac code include inclu...

UVa 11375 Matches(遞推 高精度)

思路 1.設d i 是恰好用完i根火柴所獲得的數字種數,設c i 是用i根火柴可以搭出的數字 單個數字0 9 則有c 8 2.我們首先將d i 初始化,讓搭完乙個數字的情況先存在d i 中,目的就是第乙個數字不搭0 則此時d 3.我們已知搭乙個數字至少需要兩根火柴,最多需要7根,我們從i 2開始遍歷...