본문 바로가기

백준/수학

(28)
백준 1146 - 지그재그 서기 지그재그 순열로 배치하는 경우의 수를 구하는 문제이다. 모듈러 연산에 유의하면서 경우의 수를 구하는 점화식을 구현하자. 전체 코드 더보기 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 #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; ..
[ICPC] 백준 3948 - 홍준이의 친위대 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 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..
백준 11050 - 이항 계수 1 icpc.me/11050 이항 계수 $\binom{N}{K}$를 구하는 문제이다. 주어진 입력의 크기가 작으므로 반복문을 통해 식 $\frac{N!}{K!(N - K)!}$을 구해주면 된다. 전체 코드 더보기 N, R = map(int, input().split()) bunza = 1 bunmo = 1 for i in range(N-R+1, N + 1): bunza *= i for k in range(1, R + 1): bunmo *= k print(int(bunza / bunmo))
백준 17268 - 미팅의 저주 icpc.me/17268 1670번과 요구상황이 동일한 문제이다. 1670번의 풀이를 참고하도록 하자.
백준 1670 - 정상 회담 2 icpc.me/1670 8명이 완벽하게 악수하는 경우의 수까지 직접 구해보자. 각 항을 $D_n$으로 표현했을 때 $D_2 = 1, D_4 = 2, D_6 = 5, D_8 = 14$이고 이는 카탈란 수임을 알 수 있게 된다. 카탈란 수를 적절히 구해주도록 하자. 다만 주어지는 나머지 987654321이 소수가 아니므로 페르마의 소정리를 통해 이항 계수에서 분모를 구할 수 없으므로 이항 계수 5를 해결하는 데 사용된 구현을 통해 카탈란 수를 구해주면 AC를 받을 수 있다. 전체 코드 더보기 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..