HDOJ 2046 骨牌铺方格 【递推】
生活随笔
收集整理的這篇文章主要介紹了
HDOJ 2046 骨牌铺方格 【递推】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
HDOJ 2046 骨牌鋪方格 【遞推】
題目鏈接 http://acm.hdu.edu.cn/showproblem.php?pid=2046
鋪2*1只有一種情況(一豎)
2*2有兩種情況(兩橫或兩豎)
2*n (n≥3)時
可以先鋪1塊豎著,再鋪n-1塊
還有先鋪2塊橫著(兩塊豎著和第一種有重復(fù)),再鋪n-2塊
f(1) = 1
f(2) = 2
f(n) = f(n-1) + f(n-2)
注意long long & I64d
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 typedef long long ll; 5 int n; 6 ll f[55]; 7 void Pre(){ 8 f[1] = 1; 9 f[2] = 2; 10 for(int i = 3; i <= 50; i++) f[i] = f[i-1] + f[i-2]; 11 } 12 13 int main(){ 14 Pre(); 15 while(~scanf("%d", &n)) printf("%I64d\n", f[n]); 16 return 0; 17 }
?
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。
轉(zhuǎn)載于:https://www.cnblogs.com/miaowTracy/p/4836753.html
總結(jié)
以上是生活随笔為你收集整理的HDOJ 2046 骨牌铺方格 【递推】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到一匹小马是什么征兆
- 下一篇: 如何将Eclipse中的开源项目使用到A