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에 게시됨