손이 다쳐서 갑자기 사회...가 아니라 병원으로 튕겨나왔다.
한손으로 레이팅 방어가 될지 의문이었지만, 뭐든 해봐야 아는 법!
코포는 못참거든 ㅋㅋㅋㅋㅋㅋ
$a, b, c$ 각각의 홀짝성을 기준으로 8 경우로 나눠 풀었다.
알고보니 총합의 홀짝성만 따져도 됐다.
AC: 10 분
Trivial.
AC: 13 분
모든 알파벳 $k$마다 시도해보면 된다.
특정 알파벳으로 palindrome이 가능하다면, 그 알파벳을 전부 다 걷어내도 가능하다. 이 사실로 가능성 판정을 한다.
$k$ 제외 다른 알파벳들로 문자열을 쪼갰을 때, 각 구역의 $k$ 개수를 대칭적으로 만들어주기 위해 지워야 하는 $k$의 개수를 더해준다.
26개 알파벳에 대해 시행하여 최솟값을 찾으면 끝.
AC: 28 분
$b$의 총합 제한이 $a$의 총합 제한과 일치 한다는 사실이 큰 힌트가 됐다. $a$ 와 동일한 원소들을 순서, 부호만 바꿔 $b$를 만들 수 있겠다는 생각을 하게 되었다. 이러한 생각을 한 이후에 답은 꽤 쉽게 보였는데, 단순히 두 숫자씩 짝지어 값을 바꿔치기 하고, 하나의 부호를 바꿔주기만 하면 된다.
문제는 원소의 개수가 홀수개여서 모든 원수를 짝지을 수 없을 때 발생한다.
이럴 때는 제일 앞의 세 원소만 따로 떼어놓고 해결했다. 세 원소를 (첫 두 원소의 합)과 (세 번째 원소)로 구분하여 생각하면 동일한 방식으로 해결이 가능하다.
이 때 예외적인 상황이 발생할 수 있는데, 첫 두 원소의 합이 $10^4$를 초과할 때이다. 이 경우 그냥 한 원소의 부호를 뒤집으면(그리고 $b$에서 상응하는 값도 뒤집어주면) 해결 가능하다.
이 상황에서 추가적으로 발생하는 예외는 첫 두 원소의 절댓값이 같을 때이다(왜냐면 이 때 세 번째 원소에 할당되는 $b$ 값이 0이 돼버린다). 이 경우 그냥 둘째 원소와 셋째 원소를 바꿔주고 시작한다.
또 이 경우에 있는 예외는 세 절댓값이 모두 같을 때이다. 적당히 부호 생각해서 $2, -1, -1$을 할당한다.
AC: 1 시간 1 분
못풀었다 ㅠ
F1: Korney Korneevich and XOR (easy version)
ㅠㅠ
총평
양손이든 한손이든 DP 문제는 못푼다.
하....
레이팅 변화: 1897 - 36 = 1861
My Performance: ★★★☆☆
연습지
가 있을 수가 없지...
타자치기도 버겁다.
'Competitive Programming > Codeforces' 카테고리의 다른 글
대회후기: Codeforces Round #810 (Div. 2) (0) | 2022.07.28 |
---|---|
대회후기: Educational Codeforces Round 132 (Rated for Div. 2) (0) | 2022.07.28 |
코딩일지: Codeforces-Supercharger (예제 테스트 자동화 도구) (0) | 2021.02.24 |
대회후기: Codeforces Round #704 (Div. 2) (0) | 2021.02.23 |
대회후기: Codeforces Round #703 (Div. 2) (0) | 2021.02.19 |