결과
내가 실제로 참여한 8번째 CF 대회이다
이전 7개 대회의 성적
이번 대회의 성적이 좋았던 이유는 물론 D번을 푼 것도 있겠지만, B, C번을 (특히 B번을) 빠르게 풀었다.
만약 B, C번에서 10분정도 더 썼더라면 D번을 풀 수 없었을 것이다.
Dashboard - Educational Codeforces Round 107 (Rated for Div. 2) - Codeforces
codeforces.com
A. Review Site
처음에 지문을 제대로 읽지 않아 서버가 2개라는 사실을 모르고 문제를 풀어 틀렸다.
서버가 2개이므로 숫자가 1, 3일 때 무조건 +1을 하면 된다.
B. GCD Length
세 정수를 입력받는데, 각각
먼저,
여기서
C. Yet Another Card Deck
array의 크기는
색깔의 개수가
그리고 각 쿼리가 진행될 때
이 때 시간복잡도는
D. Min Cost String
즉,
소스코드 보기
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base :: sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, k;
cin >> n >> k;
int have[k][k];
for (int i = 0; i < k; i++) {
for (int j = 0; j < k; j++) have[i][j]=0;
}
string a; a.push_back('a');
int cycle = k*k;
while (a.length() != n) {
int first = a.back()-'a';
int tag = 0;
for (int j = 0; j < k; j++) {
if (have[first][j] == (a.length()-1)/cycle) {
a.push_back(j+'a');
have[first][j]++;
tag = 1;
break;
}
}
if (tag == 0) {
a.pop_back();
int r = a.back()-'a';
have[r][first]--;
a.push_back(first+'a'+1);
have[r][first+1]++;
}
}
cout << a;
}
코드 설명
만약
즉, 모든
예를 들어,
이런 문자열이 만들어지게끔 백트래킹(?) 비슷한 방식으로 탐색하면 된다.
이 때 시간복잡도는
'CF&AC&Open' 카테고리의 다른 글
SUAPC 2023 Summer Open 후기 (3) | 2023.09.04 |
---|---|
[Codeforces Round #714] A, B, C번 풀이 (0) | 2022.06.20 |