본문 바로가기

전체 글

(104)
Codeforces Round #701 (Div. 2) Dashboard - Codeforces Round #701 (Div. 2) - Codeforces codeforces.com 꽤 만족스러운 라운드였다. 느린 3솔을 했는데, 문제가 어려웠는지 높은 퍼포먼스를 받았다. 이로써 블루 복귀를 1트 만에 성공했다. 오늘은 발 뻗고 잘 수 있을 것 같다. Prob. A 보자마자 간단한 수학 or 애드혹 문제인 줄 알았다. 그래서 생각나는 풀이를 몇 개 적어봤는데 전부 예제가 안 나왔고, 예제로 디버깅하기에는 예제가 더러워서 그냥 다음 문제로 넘어갔다. B 풀고, C 풀고, D 고민하다가 넘어와서 다시 보니 대충 작은 b들에 대해서 다 해보면 되겠다는 생각이 들었다. 최적해가 아닌 경우가 있을까봐 걱정했지만, 시간이 없어서 그냥 제출했더니 맞았다. 다른 사람들 풀..
Codeforces Round #700 (Div. 2) Dashboard - Codeforces Round #700 (Div. 2) - Codeforces codeforces.com 결론부터 말하자면 처참히 망했다. 퍼포먼스는 무려 1147점으로 그레이 수준이었고(...) 레이팅은 90점이 떨어졌다. 아슬아슬하게 버티고 있었던 블루에서 민트로 강등되었지만, 못해도 너무 못해서 변명의 여지가 없다. 저번 에듀 라운드에서 -30이 되었을 때는 억울해서 하루 종일 집중이 안됐었는데, 지금은 별 생각이 없다. Prob. A 함정도 없고 아이디어도 간단한 문제. 이 문제를 풀었을 때만 해도 오렌지 퍼포였다. ㅋㅋ Prob. B n-1마리와 전투를 해서 살아남고, 마지막 몬스터를 죽일 수 있어야 한다. 처음엔 정렬인 줄 알고 생각나는 모든 정렬 기준을 박았는데 다 틀려..
(의미 없는) Platinum I 달성 열심히 공부하고 열심히 풀었더니 어느새 플1에 도착했다. 사실 중간에 mobius inversion을 건드리긴 했지만, 최대한 수학 문제를 풀지 않으려고 노력했다. (마지막에는 그냥 수학 밀었다.) 랭작을 의식하지 않다 보니 자연스레 부족한 부분을 채울 수 있었고, 클래스 4도 의도치 않게 획득했다. 하지만 오는 3월부터 티어 시스템이 바뀌게 된다. 들은 바로는 랭킹의 변동을 수월하게 함과 동시에 한 문제가 차지하는 비중을 줄이기 위해서라고 한다. 바뀌게 될 티어를 계산해보니 플3이었고, 클래스 5를 거의 밀었기 때문에 플2까지는 확보할 수 있을 것 같다. 하지만 플2 역시 현재 티어보다는 낮은데, 내가 플레 문제를 많이 풀지 않았기 때문인 것 같다. 물론 티어를 올리는 것이 필수는 아니지만, 변동될 시..
Codeforces Round #698 (Div. 2) Dashboard - Codeforces Round #698 (Div. 2) - Codeforces codeforces.com Prob. A 최대 연속 구간의 크기가 답이다. 구현에서 머뭇거리다가 4분이나 걸렸다 ㅠ Prob. B 10*d 이상이면 항상 가능하다는 것밖에 안 보여서 10*d 미만인 경우를 각 d 별로 모두 구하는 O(1) 풀이를 생각했다.. 까마득하긴 했지만 다른 풀이 고민할 시간에 그냥 쓰는 게 이득일 것 같아서 20분 동안 무려 82줄의 장황한 코드를 작성했다. 멍청한 시도였지만 문제가 어려웠는지 다행히 다른 사람들도 늦게 풀었다. AC 받았을 때 600등 정도. Prob. C 애드혹 느낌이 강한 문제. 0
[BOJ 2904] 수학은 너무 쉬워 2904번: 수학은 너무 쉬워 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 100) 둘째 줄에는 종이에 적혀있는 수 N개가 주어진다. 수는 모두 1,000,000보다 작거나 같은 양의 정수이다. www.acmicpc.net 예쁘게 구현한 것을 자랑하고 싶어 가져왔다. 관련 테크닉도 자주 쓰이는 듯 하니 기억하자. 더보기 최대공약수를 크게 만들려면 n개의 수에 소인수가 균등하게 분배되어야 하는 것이 자명하다. n개의 수를 모두 곱한 다음 최대한 비슷하게 다시 n개의 수로 쪼갠다고 생각해도 무방하다. 그러나 이동횟수도 구해야 하므로 처음 수는 저장해야 한다. 벡터에 모든 소인수를 저장하고, 맵에 각각의 수의 소인수분해 결과와 합친 결과를 저장한다. 그리고 모든 소인수에 대해 최대공약수와 이동횟수를 갱신해주면 ..