본문 바로가기

백준/수학

[ICPC] 백준 3948 - 홍준이의 친위대

728x90
728x90

icpc.me/3948

 

문제를 해석하면 홍준이는 지그재그 순열 형태로 병사를 배치하고 싶어함을 알 수 있다.

 

각 TC 마다 n까지 지그재그 순열을 나열하는 경우의 수를 출력해주자.

 

전체 코드

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <bits/stdc++.h>
 
using namespace std;
using ll = long long;
 
ll euler[21][21];
 
ll zigzag(int n, int k);
 
int main()
{
    cin.tie(0); ios::sync_with_stdio(false);
 
    memset(euler, -1sizeof euler);
    euler[0][0= 1;
 
    int t;
    cin >> t;
 
    while (t--)
    {
        int n;
        cin >> n;
 
        if (n == 1)
            cout << "1\n";
        else
            cout << zigzag(n, n) * 2 << '\n';
    }    
}
 
ll zigzag(int n, int k)
{
    if (!k)
    {
        if (!n)
            return 1;
        else
            return 0;
    }
 
    ll &ret = euler[n][k];
 
    if (ret != -1return ret;
 
    return ret = zigzag(n, k - 1+ zigzag(n - 1, n - k);
}
cs

728x90
728x90

'백준 > 수학' 카테고리의 다른 글

백준 1413 - 박스 안의 열쇠  (0) 2021.01.17
백준 1146 - 지그재그 서기  (0) 2021.01.02
백준 11050 - 이항 계수 1  (0) 2020.11.30
백준 17268 - 미팅의 저주  (0) 2020.11.30
백준 1670 - 정상 회담 2  (0) 2020.11.30