骨牌覆蓋問題二

2021-07-01 23:12:39 字數 979 閱讀 4018

描述

上一周我們研究了2xn的骨牌問題,這一周我們不妨加大一下難度,研究一下3xn的骨牌問題?

所以我們的題目是:對於3xn的棋盤,使用1x2的骨牌去覆蓋一共有多少種不同的覆蓋方法呢?

首先我們可以肯定,奇數長度一定是沒有辦法覆蓋的;對於偶數長度,比如2,4,我們有下面幾種覆蓋方式:

輸入第1行:1個整數n。表示棋盤長度。1≤n≤100,000,000

輸出第1行:1個整數,表示覆蓋方案數 mod 12357

樣例輸入

62247088
樣例輸出

4037
/*上一周我們研究了2xn的骨牌問題,這一周我們不妨加大一下難度,研究一下3xn的骨牌問題?

所以我們的題目是:對於3xn的棋盤,使用1x2的骨牌去覆蓋一共有多少種不同的覆蓋方法呢?

首先我們可以肯定,奇數長度一定是沒有辦法覆蓋的;對於偶數長度,比如2,4,我們有下面幾種覆蓋方式:

*/#define ll long long

#include using namespace std;

const int maxn= 100000000;

const int constn = 8;

const ll mod = 12357;

int n;

ll re = 0;

int c[constn][constn] =;

typedef struct matrix{

int (*a)[constn];

matrix(int (*b)[constn]){

a = new int [constn][constn];

for(int i=0;i>n){

if(n%2==1) {

cout<

骨牌覆蓋問題

骨牌覆蓋問題,就是用 1x2 大小的骨牌,鋪設乙個給定大小的乙個矩形區域,要求必須鋪滿,且不可以超出邊界。問總的鋪設方案數字多少?這一類問題就是骨牌覆蓋問題。不同規模的資料有不同的方法。下面來看看最簡單的 2 n 區域裡面的鋪設方法數。n 0,一種 n 1 為一種 n 2,兩種 n 3,5種 較為容...

骨牌覆蓋問題

骨牌覆蓋問題 用1 2骨牌完美覆蓋n m棋盤,求方案數 如果骨牌橫著放,只能兩個橫著的骨牌摞在一起 如果豎著放,恰好佔一列 所以dp i dp i 1 dp i 2 即斐波那契數列 可以想到乙個遞推式 f n a2 f n 2 a4 f n 4 a6 f n 6 an f 0 ai i是偶數 是未知...

hihoCoder 骨牌覆蓋問題 一

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述骨牌,一種古老的玩具。今天我們要研究的是骨牌的覆蓋問題 我們有乙個2xn的長條形棋盤,然後用1x2的骨牌去覆蓋整個棋盤。對於這個棋盤,一共有多少種不同的覆蓋方法呢?舉個例子,對於長度為1到3的棋盤,我們有下面幾種覆蓋方式 ...