2024년 하이베이 프로그래밍 경연 대회

A - 최대 곱셈 두 수 a와 b의 곱이 최대가 되는 조건은 a=1일 때입니다. #include <iostream> using namespace std; typedef long long ll; #define endl '\n' ll gcd(ll a, ll b) { while (b) { swap(a, b); b %= a; } return a; } void solve() { ll x, y; cin >> x >> y; cout n; vector points(n); for (au ...

6월 23일 02:23에 게시됨

수론 기초: 정합, 최대공약수 및 최소공배수 알고리즘 분석

정수론과 나눇셈 (Divisibility) 수학, 특히 수론에서 정수 $a$가 정수 $d$로 나누어 떨어질 때, 이를 '$a$는 $d$에 의해 정수배수 관계에 있다'고 표현하며, 기호로는 $d | a$로 표기합니다. 이는 나머지 없이 정확히 나뉘어진다는 뜻입니다. 나누떨어짐의 기본 속성들은 다음과 같습니다: 만약 $d | a$이면, 임의의 정수 $k$에 대하여 $d | ka$가 성립합니다. 만약 $d ...

6월 8일 22:44에 게시됨

CrCPC 2024 알고리즘 솔루션 가이드

문제 A: 인공지능의 종료 시나리오 이 문제는 상태 간의 전이를 효율적으로 관리하는 것이 핵심입니다. 주어진 값들의 분포를 압축하여 중복을 제거하고 (좌표 압축), 각 단계마다 가능한 최소 이동 횟수를 계산합니다. 전체적인 시간 복잡도는 로그 스케일을 가지므로 \(O(N \log N)\) 입니다. // 참조 구현 코드 #include <bits/stdc++.h> using namespace std; ...

6월 5일 01:01에 게시됨

핵심 알고리즘 유형별 해결 방안과 코드 리팩토링

부제: 기본적인 수학 논리와 자료구조를 통한 효율적 설계 다음 내용은 특정 알고리즘 대회에서 자주 등장하는 4 가지 핵심 유형에 대한 접근법과 개선된 구현 예시를 다룹니다. 각 문제는 수학적 성질 검증, 그리디(Greedy) 할당, 해싱 기반 카운팅, 그리고 동적 계획법(DP) 과 재귀 탐색을 포함하고 있습니다. 1. 짝수 합분해 가능성 판정 목표: 주어진 양의 정수가 두 ...

5월 29일 00:49에 게시됨