let menu = ["Home", "Algorithms", "CodeHub", "VNOI Statistics"];

Overview

M3TILE - LATGACH3

solution.md

Gọi F[i] là số cách sắp thành hình chữ nhật 3xi.

Có 3 loại khối cơ bản:

tile

Từ 3 loại này có thể sắp thành tất cả các hình chữ nhật có thể.

Dòng sau sử dụng khối loại 2 và 3:

for (int j=i-2; j>=0; j -= 2) f[i] += 2 * f[j];

Dòng sau sử dụng khối loại 1:

f[i] += f[i-2];
main.cpp
Open in Github Download
#include <iostream>
using namespace std;

int main() {
    long long f[31];
    f[0] = 1;
    f[1] = 0;
    for (int i=2; i <= 30; i++) {
        f[i] = 0;
        for (int j=i-2; j>=0; j -= 2) f[i] += 2 * f[j];
        f[i] += f[i-2];
    }

    int n;
    while (cin >> n) {
        if (n == -1) break;
        cout << f[n] << '\n';
    }
}
Comments