본문 바로가기

PS/BOJ57

BOJ 26092 https://www.acmicpc.net/problem/26092 26092번: 수학적인 최소 공통 조상 첫째 줄에 정수 $a$와 $b$가 공백으로 구분되어 주어진다. $(1\leq a,b\leq 10^{12})$ www.acmicpc.net 시간복잡도 훈련에 좋은 문제입니다. 관찰 1. \( n \)의 소인수를 모두 구하는데 걸리는 시간은 \(O(\sqrt{n})\) 입니다. 정수 \(a, b\)에 대해 \(n=ab\)라고 표현할 수 있습니다. 일반성을 잃지 않고 \(a\leq b\) 라고 두면, \(n = ab\geq a^2 \) 이므로 \(a\leq \sqrt{n} \) 이 됩니다. 즉, 두 곱으로 쪼갰을 때, 작은 수 \(a \)만 찾으면 나머지 수는 \(n/a \)로 결정됩니다. 관찰 2. 값.. 2022. 12. 25.
2022 충남대학교 SW-IT Contest - Division 1 풀이 https://www.acmicpc.net/category/detail/3193 2022 충남대학교 SW-IT Contest - Division 1 www.acmicpc.net A. 햄버거를 1개 만들기 위해 빵 2개와 패티 1개가 필요합니다. 따라서 빵의 개수/2 와 패티 중 작은 값이 최대로 만드는 버거의 개수가 됩니다. #include using namespace std; int main() { ios::sync_with_stdio(0), cin.tie(0); int a, b; cin >> a >> b; cout > n; int even = 0; for (int i = 1; i > x; if (!(x&1))even++; } cout n; string s; cin >> s; int ans = 0; f.. 2022. 10. 9.
백준 22878 / C++ https://www.acmicpc.net/problem/22878 22878번: 간단한 문제 길이가 $N$인 두 수열 $(p_1, p_2, \ldots, p_N)$, $(q_1, q_2, \dots, q_N)$ 이 주어진다. 이때 다음 값을 구하여라. $$\sum_{i=1}^{N} {\sum_{j=1}^{N} {\min(|p_i - p_j|, |q_i - q_j|)} }$$ www.acmicpc.net [ 풀이 ] 수학문제입니다. 두가지 잘 알려진 식을 이용합니다. 1. max(a, b)+min(a, b)=a+b 2. max(|a|, |b|)= abs((a+b)/2)+abs((a-b)/2) 2번 식은 수직선에서 중점을 잡고 오른쪽 반 칸이 최댓값이므로 쉽게 증명됩니다. 두 식을 이용하면, 식이 pi-p.. 2022. 9. 1.
백준 16726 / C++ https://www.acmicpc.net/problem/16726 16726번: 영과일 학회방 영과일은 학회방이 없어질 위기에 처했지만 우수한 학회원들의 실력을 인정받아 학회방을 다시 배정 받을 수 있었다! 이에 행복해진 영과일 총무부장 재현이는 새로운 마음으로 1 × 2, 1 × 1 타 www.acmicpc.net [ 풀이 ] 예제 생긴것부터 플로우 문제네요. n제한도 작으니... 격자판을 1*2 와 1*1로 채울 수 있습니다. 최소개수가 필요하니 1*2들을 최대한 써줘야 합니다. 격자를 체스판처럼 컬러링한 후 색이 다른걸 이분매칭을 돌려주면 됩니다. 이분매칭으로 최대한 찾은 결과가 k라고 하면, 'X'를 제외한 면적에서 2k가 빠집니다. 그럼 나머지 S-2k는 1*1로 채워야 하므로 S-2k개가 필.. 2022. 8. 31.