Codeforces Round 960 (Div. 2) 효율적인 문제 풀이 전략

A. Submission Bait (게임 이론) 앨리스와 밥이 $n$개의 원소를 가진 배열 $a$를 사용하여 게임을 진행합니다. 초기 mx 값은 0이며, 각 플레이어는 자신의 차례에 $a_i \ge mx$인 인덱스 $i$를 선택하여 mx를 $a_i$로 갱신하고 $a_i$를 0으로 만듭니다. 더 이상 움직일 수 없는 플레이어가 패배할 때, 앨리스의 필승 전략 존재 여부를 판별해야 합니다. 이 문제의 핵심은 ...

7월 30일 12:49에 게시됨

선형 기저(Linear Basis)를 활용한 XOR 최적화 문제 분석

2024 CCPC Online Contest: 최댓값의 최소화 문제 2024 CCPC 인터넷 예선 J번 문제는 두 시퀀스의 XOR 합을 조정하여 그 중 최댓값을 최소화하는 문제입니다. 길이 $n$인 두 수열 $a, b$가 주어지며, 동일한 인덱스 $i$에 대해 $a_i$와 $b_i$를 교환하는 연산을 원하는 만큼 수행할 수 있습니다. 이때 $f(a) = \bigoplus_{i=1}^n a_i$와 $f(b) = \bigoplus_{i=1}^n b_i$를 ...

7월 23일 08:18에 게시됨

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