A. Ela Sorting Books (0:15, +2)
각 묶음에 대해 Mex 이후로는 무슨 알파벳이 들어오던 상관이 없다. 따라서 앞 묶음부터 앞 알파벳을 하나씩 넣어주는 것이 항상 최적이다. 구현을 약간 이상하게 해 2번 틀려서 B 풀고 다시 와서 풀었다.
B. Ela's Fitness and the Luxury Number (0:13, +)
각 \(a\)에 대해 \(\lfloor\sqrt{x}\rfloor = a\)인 \(x\) 중 \(a\)의 배수는 3개 \( (a^2, a^2+a, a^2+2a) \)이다. 이 사실을 이용해 잘 구해주면 된다. sqrt 함수를 쓰면 틀린다는 얘기가 많은데, 나는 그냥 맞았다.. 왜지?
C. Ela and Crickets (0:42, +2)
대충 해보면, 우물 정 모양으로 갈 수 있는 영역이 정해진다. 이 때 예외가 있는데, L자 모양이 모서리에 딱 맞는 방향으로 있는 경우 2개를 1자로 보내는 것 밖에 할 수 없다. 이 경우만 처리해주면 무난히 AC를 받을 수 있는데, 난 음수 나눗셈을 안하겠답시고 괄호 안에 이상한 값을 더했다 홀짝성이 달라져 두 번 틀렸다.
D. Ela and the Wiring Wizard (2:06, +)
우선 한 가지 관찰을 해야 한다 -> 최종적으로 쓰는 간선은 항상 하나이다.
왜냐하면, 최종적으로 만들어진 그래프의 최단 경로에서 가중치가 가장 작은 간선을 연산을 통해 \(1\)과 \(n\)을 이어주는 간선으로 바꾸어주는 것이 항상 최적이다.
이를 관찰하고 나면, 각 간선을 연산을 통해 \((1,n)\)으로 만드는 최소 횟수를 구하는 문제가 된다.
각 간선 \(a,b\)에 대해 \(a,b\)에 연산을 해 갈 수 있는 위치는 \((c,b)\), \( (a,d) \), \((a,a)\), \((b,b)\)이다. \(c\)는 \(a\)와 초기 그래프에서 연결된 정점, \(d\)는 \(b\)와 초기 그래프에서 연결된 정점이다.
각 간선에 대해 이 BFS를 모두 시행할 수는 없기 때문에, \((1,n)\)과 \((n,1)\)을 시작점으로 하는 역방향 그래프에서 BFS를 돌려주면 정답을 구할 수 있다.
D를 늦게 푼 점, A와 C를 많이 틀린 점 때문에 퍼포가 높게 나오진 않았다.
'PS > CP' 카테고리의 다른 글
Codeforces Round #825 (Div. 2) (0) | 2022.10.15 |
---|---|
AtCoder Regular Contest 150 (0) | 2022.10.15 |
Codeforces Round #824 (Div. 2) (0) | 2022.10.05 |
Codeforces Global Round 22 (0) | 2022.10.05 |
Educational Codeforces Round 132 (Rated for Div. 2) (2) | 2022.07.22 |