2021. 7. 9. 01:49ㆍContest/Codeforces
Codeforces Round #538 (Div. 2)
Dashboard - Codeforces Round #538 (Div. 2) - Codeforces
codeforces.com
왤논 dp 변형 덕에 퍼플 퍼포를 달성하였다! 와!
근데 저것만 해도 너무 벅차다고 생각했고, 아직 퍼플 가기엔 좀 길이 남았다고 생각한다.
그리고 버추얼만 하면 뇌절 엄첨하는 것 같더라...제발..
Problem - A - Codeforces
codeforces.com
문제에서 고려할 점만 잘 고려해주면 풀린다.
5분 AC.
여기서 맨탈 터질 뻔했으나 잘 수습했다. 다행
B. Yet Another Array Partitioning Task
Problem - B - Codeforces
codeforces.com
B 치곤 난이도가 좀 그랬던(?) 것 같다.
걍 그리디인데, 배열에서 큰 순서대로 m*k개의 정수를 뽑는다.
그렇다면 일단 첫번째 출력은 이 m*k개의 수들의 합일 것이고,
두번째 출력은 이 숫자들의 순서를 저장한 다음, 정렬해서 m*k번째 수를 제외한 m의 배수의 순서의 있는 순서들을 출력하면 된다.
13분 AC.
C. Trailing Loves (or L'oeufs?)
Problem - C - Codeforces
codeforces.com
왤논 정수론 문제이다.
백준의 <팩토리얼 0의 갯수 (https://www.acmicpc.net/problem/1676)>문제에서 10진법을 n진법으로 바꿔버린 문제였다.
우리는 2와 5 대신 b의 각 소인수를 구하고, 각 n!에서 나오는 b의 각 소인수 갯수에 b의 각 소인수의 거듭제곱만큼 나누면 b를 이루는 갯수는 그 중에서 최소인 것이 된다.
설명하기가 너무 힘든 문제이다. 코드를 잘 참고해보시길...ㅠㅠ (+ 뇌절이 아주 심했던 문제.)
58분 AC.
D. Flood Fill
Problem - D - Codeforces
codeforces.com
이것도 KOI <전구 (https://www.acmicpc.net/problem/2449)> 문제의 변형 문제이다.
그러나 KOI 전구문제처럼 O(N^3)처럼 풀기 힘듦을 알 것이다.
그래서 dp배열의 정의는 비슷하게 하되, 약간 바꾸어서 O(N^2)으로 풀 수 있게 할 것이다.
dp[i][j][k] = i~j까지 모두 합치고, 마지막으로 범위를 넓힌 방향이 k일때(k=0은 왼쪽, k=1은 오른쪽), 쓰이는 최소의 비용
dp[i][j][0] = min(dp[i][j][0], dp[i+1][j][k]+(a[k ? j : i+1]!=a[i])
dp[i][j][1] = min(dp[i][j][1], dp[i][j-1][k]+(a[k ? j-1 : i]!=a[j])
이렇게 되면 2*N^2번의 계산을 하게 되어 O(N^2)만에 풀 수 있게 된다.
1시간 36분 AC.
생각보다 재밌는 라운드였다.
'Contest > Codeforces' 카테고리의 다른 글
[1일차] Educational Codeforces Round 68 (Rated for Div. 2) (0) | 2022.02.04 |
---|---|
[버추얼 매일 돌리기 프로젝트 #8] Codeforces Round #473 (Div. 2) (1) | 2021.07.10 |
[코포 라운드 글 #4] Codeforces Round #730 (Div. 2) (0) | 2021.07.09 |
[코포 라운드 글 #3] Educational Codeforces Round 104 (Rated for Div. 2) (0) | 2021.02.18 |
[버추얼 매일 돌리기 프로젝트 #6] Codeforces Round #496 (Div. 3) (1) | 2021.02.15 |