ZCMU-1618:骨牌覆蓋1(規律題)
阿新 • • 發佈:2019-01-27
Problem E: 骨牌覆蓋1
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 376 Solved: 179
[Submit][Status][Web Board]
Description
我們有一個2xN的長條形棋盤,然後用1x2的骨牌去覆蓋整個棋盤。對於這個棋盤,一共有多少種不同的覆蓋方法呢?
Input
輸入n,n<=100000
Output
覆蓋方案總數對19999997取餘
Sample Input
1
2
Sample Output
1
2
HINT
【解析】
這種題目看著就是規律題。列幾個發現好像是斐波那契,那就這樣試一下好了。問題是這個N可以很大,所以題目要取餘。
雖說有大佬用快速冪矩陣寫的,可是萌新看不懂還沒學過!那我就只能打表了。。。。
#include <bits/stdc++.h> using namespace std; int fib[100010] = { 1,1,2 }; void f() { for (int i = 3; i < 100010; i++) fib[i] = (fib[i - 1] + fib[i - 2]) % 19999997;//每次都取餘 } int main() { int n; f(); while (~scanf("%d", &n)) printf("%d\n", fib[n]); return 0; }