728x90
728x90
지그재그 순열로 배치하는 경우의 수를 구하는 문제이다.
모듈러 연산에 유의하면서 경우의 수를 구하는 점화식을 구현하자.
전체 코드
더보기
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>
#define mod 1000000
using namespace std;
using ll = long long;
int n;
int euler[101][101];
int zigzag(int n, int k);
int main()
{
memset(euler, -1, sizeof euler);
euler[0][0] = 1;
cin.tie(0); ios::sync_with_stdio(false);
cin >> n;
if (n == 1)
{
cout << 1;
return 0;
}
cout << zigzag(n, n) * 2 % mod;
}
int zigzag(int n, int k)
{
if (!k)
{
if (!n)
return 1;
else
return 0;
}
int &ret = euler[n][k];
if (ret != -1)
return ret;
return ret = (zigzag(n, k - 1) + zigzag(n - 1, n - k)) % mod;
}
|
cs |
728x90
728x90
'백준 > 수학' 카테고리의 다른 글
백준 11444 - 피보나치 수 6 (0) | 2021.06.30 |
---|---|
백준 1413 - 박스 안의 열쇠 (0) | 2021.01.17 |
[ICPC] 백준 3948 - 홍준이의 친위대 (0) | 2021.01.02 |
백준 11050 - 이항 계수 1 (0) | 2020.11.30 |
백준 17268 - 미팅의 저주 (0) | 2020.11.30 |