- toc {:toc}
ํ์ด
์์ผ๋ก ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํด๋ณด๊ณ ๊ท์น์ฑ์ ์๊ฐํด๋ณธ๋ค.
- 3x2์ ๊ฒฝ์ฐ
๋ค์์ 3๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค.
- 3x4์ ๊ฒฝ์ฐ
d์ ์ผ์ชฝ ํฐ ์ง์ฌ๊ฐํ์์ 3๊ฐ์ง ๊ฒฝ์ฐ, ์ค๋ฅธ์ชฝ์์ 3๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฏ๋ก 3x3 = 9
e์ ๊ฐ์ด ์๋ก์ด ๊ฒฝ์ฐ 2๊ฐ์ง ์กด์ฌํ๋ฏ๋ก 9+2 = 11
- 3x6์ ๊ฒฝ์ฐ
f์์ ์ผ์ชฝ ํฐ ์ง์ฌ๊ฐํ์ 11๊ฐ์ง์ ๊ฒฝ์ฐ๋ฅผ ๋ฃ์ ์ ์๊ณ , f ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ 3๊ฐ์ง ๊ฒฝ์ฐ์ ์๊ฐ ์๊ธฐ ๋๋ฌธ์ 11x3 = 33
f์ ๊ฒฝ์ฐ๋ฅผ ์
๋ a, b, c ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ง ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ธํ์ผ๋, e์ ๊ฒฝ์ฐ์ ์๋ ์ ๋ฐ๋ง ํ์ธํ ์
์ด๊ธฐ ๋๋ฌธ์ e์ ๊ฒฝ์ฐ๊ฐ ์ค๋ฅธ์ชฝ์ ์์นํ ๊ฒฝ์ฐ๋ ํ์ธํด์ค์ผ ํ๋ค.
์ฐจ๊ทผ์ฐจ๊ทผ ์๊ฐํด๋ณด์. f์ ๊ฒฝ์ฐ์์ e์ ๊ฒฝ์ฐ๋ฅผ ๋นผ๊ณ ์๊ฐํด๋ณด์.
๋จผ์ , e์ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ a, b, c์ ๊ฒฝ์ฐ๋ง ์๊ฐํด๋ณด๋ฉด d์ ๊ฒฝ์ฐ์ ์(3x3)์ f์ ์ค๋ฅธ์ชฝ 6๊ฐ์ ์ ์ฌ๊ฐํ์์ ๋ง๋ค ์ ์๋ ๊ฒฝ์ฐ์ ์ 3๊ฐ๋ฅผ ๊ณฑํด a, b, c ์ ๋ชจ์๋ง ์๊ฐํ๋ฉด 3x3x3 = 27 ๊ฐ์ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ธํ๋ค.
๋ค์, e์ ๊ฒฝ์ฐ์ ์๋ฅผ ์๊ฐํด๋ณด์. e์ ๋ชจ์์ด ๋์ฌ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ ใ ก๋ชจ์์ด ์์ ์์นํ ๊ฒฝ์ฐ, ์๋์ ์์นํ ๊ฒฝ์ฐ 2๊ฐ์ง์ด๊ณ , g์ ๊ฒฝ์ฐ์์ ์ผ์ชฝ์๋ a, b, c 3๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ๋์ฌ ์ ์๊ธฐ ๋๋ฌธ์ 3x2 ๋ก ์ ์ ์๋ค. ์ถ๊ฐ๋ก, e์ ๋ชจ์์ด g์ ์ค๋ฅธ์ชฝ ๋์ ์์นํ ์๋ ์๊ณ , ์ผ์ชฝ ๋์ ์์นํ ์๋ ์๊ธฐ ๋๋ฌธ์ 3x2x2 = 12 ๊ฐ ๋๋ค. ๋๋ฌธ์ f์์ 11x3์ ์๋ฏธ๋ (a, b, c์ ๋ชจ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ์ ์) + (g์ ๊ฒฝ์ฐ์ ์ / 2) ์ธ ์ ์ด๋ค.
์ถ๊ฐ๋ก h์ ์๋ก์ด ๊ฒฝ์ฐ 2๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
๋๋ฌธ์ ์ต์ข ์ ์ผ๋ก 11x3 + 3x2 + 2 = 41์ด๋ค.
์ด์ 3x2, 3x4, 3x6์ ๊ท์น์ฑ์ ์๊ฐํด๋ณด๋ฉด ์๋์ฒ๋ผ ํํํ ์ ์๋ค.
dp[0] = 1;
dp[2] = dp[2-2] * 3;
dp[4] = dp[4-2] * 3 + dp[4-4] * 2;
dp[6] = dp[6-2] * 3 + dp[6-4] * 2 + dp[6-6] * 2;#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
int dp[33];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
if(n % 2 == 1){
cout << 0 << endl;
exit(0);
}
dp[0] = 1;
for(int i=2; i<=n; i+=2){
for(int j=2; j<=i; j+=2){
int first = i-(i-j), factor;
if(first == 2) factor = 3;
else factor = 2;
dp[i] += dp[i-j] * factor;
}
}
cout << dp[n] << endl;
return 0;
}