描述
骨牌,一种古老的玩具。今天我们要研究的是骨牌的覆盖问题:
我们有一个2xN的长条形棋盘,然后用1x2的骨牌去覆盖整个棋盘。对于这个棋盘,一共有多少种不同的覆盖方法呢?
举个例子,对于长度为1到3的棋盘,我们有下面几种覆盖方式:
输入
第1行:1个整数N。表示棋盘长度。1≤N≤100,000,000
输出
第1行:1个整数,表示覆盖方案数 MOD 19999997
样例输入
62247088
样例输出
17748018
乘方快速幂:
如何快速的求解 xNxN次方,显然线性的算法是O(N),当N过大时,依然不适用。
假设现再要求 abab
采用二进制得思想,将b转化为二进制数。
b=c0×20+c1×21+c2×22+c3