일요일날 CEOI 2018 Day1을 돌았다!
A. Cloud Computing
음... ㅁㄴㅇㄹ 일단 나이브로 냅색해서 4억짜리 풀이는 생각했고, 4억 2초는 좀 그러니까(반복문도 두 번 돌아서 거의 8억) 더 빠른 풀이를 열심히 고민해보았다. 그래서 계속 고민해봤는데 몇 시간째 답이 안 나와서 그냥 나이브 냅색을 냈는데 660ms에 돌았고 그게 정풀이었다... 풀이는 간단하다. 가격순으로 정렬하고 dp[i][j]=i번째까지 봤고 j개를 이미 사놨을 때 얻을 수 있는 최대 이득 으로 dp식을 잡고 냅색하면 된다.
B. Global Warming
앞쪽에 -d를 더하는 것과 반대로 뒤쪽에 d를 더하는 것은 동치이다. 그리고 구간에 양수 d를 더할 거라면 그냥 그 뒷부분에도 쭉 더하는 게 이득이다. 음수 d를 더할 거면 그 앞부분에도 더해주는 게 이득이다. 그러니까 결국 특정위치부터 x를 쭉 더했을 때 최대 LIS 길이를 구하면 된다. 그냥 dp를 세울 수 있다. dp[i][0]=i에서 끝나고 아직 x를 안 더했을 때 LIS 길이, dp[i][1]=i에서 끝나고 이미 x를 더하는 과정을 거쳤을 때 LIS 길이. 세그먼트 트리로 LIS를 구하는 방법을 이용해주면 저 dp를 가볍게 풀 수 있고 끝난다.
C. Lottery
25점은 나이브로 풀린다. 그 초과는 모르겠다. 문제에서 뭔가 되게 무리한 요구를 하는 거 같고, KMP나 Suffix Array 같은 문자열 알고리즘을 사용할 거 같은 느낌도 드는데 그 부분에 대해서는 거의 모른다.
'PS' 카테고리의 다른 글
2022 IOI 국대교육 1주차 문제모음 (1) | 2022.06.25 |
---|---|
국가대표 멘토링 교육 3주차 후기 (0) | 2022.06.13 |
국가대표 멘토링 교육 1주차 후기 (0) | 2022.06.03 |
IOI 2022 2차 선발고사 후기 (3) | 2022.04.11 |
IOI 2022 1차 선발고사 후기 (1) | 2022.01.24 |