題目45 棋盤覆蓋

2021-08-09 12:15:10 字數 926 閱讀 5505

在乙個2^k × 2^k(1<=k<=100)的棋盤中恰有一方格被覆蓋,如圖1(k=2時),現用一缺角的2×2方格(圖2為其中缺右下角的乙個),去覆蓋2k×2k未被覆蓋過的方格,求需要類似圖2方格總的個數s。如k=1時,s=1;k=2時,s=5

第一行m表示有m組測試資料;

每一組測試資料的第一行有乙個整數數k;

輸出所需個數s;

3 1 2 3

1 5

21這道題考察的是大數乘問題。f(k) = (2^(2 * k) - 1)/3,f(k + 1) = (2^(2 * (k + 1)) - 1)/3,故而可以推出f(k + 1) = 4 * f(k) + 1。因為數很大,需要自己寫了乙個大數乘演算法。

大數乘演算法思想很簡單,使用陣列儲存乘積,迴圈遍歷陣列,將陣列的每一位與乘數相乘,乘積與上一次的進製相加複製給進製數,當前位更新為進製數%10,進製數更新為除於10的商(向下取整)。

/*

author:楊林峰

date:2017.10.18

nyoj(45):棋盤覆蓋

*/#include

#include

#include

using

namespace

std;

int nums[65];

int main()

}int k = 65;

while (!nums[k]) k--;

for (int i = k; i >= 0; i--)

cout

<< nums[i];

cout

<< endl;

}return

0;}

NYOJ 題目45棋盤覆蓋(大數)

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 在乙個2k 2k 1 k 100 的棋盤中恰有一方格被覆蓋,如圖1 k 2時 現用一缺角的2 2方格 圖2為其中缺右下角的乙個 去覆蓋2k 2k未被覆蓋過的方格,求需要類似圖2方格總的個數s。如k 1時,s 1 k 2時,s 5...

南陽oj 棋盤覆蓋 題目45

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述在乙個2k 2k 1 k 100 的棋盤中恰有一方格被覆蓋,如圖1 k 2時 現用一缺角的2 2方格 圖2為其中缺右下角的乙個 去覆蓋2k 2k未被覆蓋過的方格,求需要類似圖2方格總的個數s。如k 1時,s 1 k 2時,s 5 ...

NYOJ 45 棋盤覆蓋

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述在乙個2k 2k 1 k 100 的棋盤中恰有一方格被覆蓋,如圖1 k 2時 現用一缺角的2 2方格 圖2為其中缺右下角的乙個 去覆蓋2k 2k未被覆蓋過的方格,求需要類似圖2方格總的個數s。如k 1時,s 1 k 2時,s 5 ...