睿抗 RC 프로그래밍 대회 국선전 문제 해설 및 C++ 실전 구현
대회 경향성 분석 및 난이도 평가
2022 년부터 2024 년까지 이어진 전국 본선 모의 훈련 문제들을 종합적으로 분석한 결과, 전반적인 난이도 흐름은 2022 > 2024 > 2023 순으로 예상된다. 출제 패턴을 살펴보면 대부분 초기 문제에 문자열 처리나 시뮬레이션 유형이 등장하며, 이후 완전 탐색, 자료구조 활용, 그래프 이론과 동적 계획법(DP) 결합 형태가 차례로 배치된다 ...
7월 5일 21:26에 게시됨
NOIP 2023 알고리즘 문제 풀이
문제 1: 간단한 문자열 처리
첫 번째 문제는 매우 straightforward합니다. 각 행의 문자를 추출하여 정렬한 후 최소 문자열을 만들고, 역순으로 배치하여 최대 문자열을 만들면 됩니다.
코드 확인하기
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
template<typename T>
void processRange(T* start, T* end, function<void(T*)& ...
6월 29일 21:06에 게시됨
Codeforces Round #574 (Div. 2) 기술 블로그 및 문제 풀이
Problem A: Drinks Choosing
N명의 학생들이 각자 선호하는 음료 맛이 있습니다. 총 $\lceil n/2 \rceil$개의 세트가 제공되며, 각 세트에는 같은 맛의 음료 2병이 들어 있습니다. 목표는 최대한 많은 학생이 자신이 원하는 맛의 음료를 받을 수 있도록 배분하는 것입니다.
가장 효율적인 방법은 동일한 맛을 원하는 학생들을 2명씩 묶어 한 세트를 주는 것입니다. 이렇게 ...
6월 14일 17:30에 게시됨
행렬 곱셈과 고속 지수 연산
행렬의 기초
기본 개념
행렬은 행과 열로 구성되는 2차원 배열이다. n×m 행렬은 n개의 행과 m개의 열을 가진 구조를 의미한다.
두 행렬을 곱할 때는 첫 번째 행렬의 열 개수와 두 번째 행렬의 행 개수가 반드시 일치해야 한다. 예를 들어, 2×3 행렬과 3×4 행렬을 곱하면 결과는 2×4 행렬이 된다.
[A_{a \times n} \times B_{n \times m} = C_{a \times m}]
행렬 곱셈의 ...
6월 11일 19:01에 게시됨
NCPC 2018 문제 풀이 노트
2018년 노르딕 대학생 프로그래밍 콘테스트(NCPC 2018)의 문제들을 정리한 풀이 노트입니다. 각 문제의 핵심 아이디어와 구현 방식을 다룹니다.
A. 개구리 탈출
n마리의 개구리가 우물에 빠졌습니다. 각 개구리는 점프력, 체중(하부 지지 한도), 신장을 가지며, 서로를 밟고 올라가 우물을 탈출해야 합니다. 최대 몇 마리가 탈출할 수 있는지 구하는 문제입니다.
지지 한 ...
6월 9일 17:09에 게시됨
上海市计算机학회 경시대회 2023년 8월 월례丙조 T5 격자 경로
T5 격자 경로
메모리 제한: 256 Mb | 시간 제한: 1000 ms
문제 설명
n × m개의 격자로 이루어진 지도가 주어진다. 각 격자에는 지형 정보가 있다:
일부 격자는 벽(#)이며, 통과할 수 없다.
일부 격자는 길(.)이며, 통과할 수 있다.
좌상단 격자에서 시작하여 우하단 격자까지 최단 거리로 도착하는 경우의 수를 구해야 한다. 이동 중에는 벽 격자로 진입할 수 없으며, ...
5월 31일 13:16에 게시됨
Codeforces Round 979 Div. 2 문제 풀이
A 문제
첫 번째 위치의 기여도는 항상 0이다. 나머지 n-1개의 위치에서 최대값과 최소값을 첫 두 위치에 배치하면 최적의 결과를 얻을 수 있다. 이 경우 기여도는 (최대값 - 최소값) × (n-1)이 된다.
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
void process() {
int length;
cin >> length;
int high = INT_MI ...
5월 27일 01:34에 게시됨