-
#723 div2 5/28대회/코드포스 2021. 5. 30. 19:45
https://codeforces.com/contest/1526
A. Mean Inequality
2*n개의 수열이 존재하고, 이 수들의 사이값이 양쪽 두 값 합의 절반이 되지 않도록 재배열 하는 문제.
따라서 양쪽이 모두 그 중간값보다 크게 되면 절대 양쪽 두 값 합의 절반이 될 수 없으므로 배열을 크기순으로 다시하면 된다.
B. I Hate 1111
먼저 그냥 1000 + 111 이 1111이라고 생각을 했고, 왜 그런지 몰라도 배수처럼 생각을 하였다. 그러나 배수 약수 관계가 아니었고 그렇게 틀리면 틀리는게 당연했다. 그래서 그냥 수열로서 어떤식으로 11로 111을 만들 수 있는지 digit으로 구분해서 생각을 해보았으나 전혀 생각이 되지 않았다.
이 문제는 다른 1으로 이루어진 수들은 11과 111의 배수이다. 따라서 11과 111 두 가지 수로만 만들 수 있는지 아닌지를 체크하면 된다. 여기서 이제 수식이 들어간다.
우리한테 주어진 수 X = A*11 + B*111 이고, B = C*11 + D이므로 D는 11보다 작은 수이다.
여기서 B대신 우변을 대입하면
X = A*11 + (C*11+D)*111 이 되고,
X = 11*(A+C*111) + 111*D가 된다.
따라서 111의 가짓수는 0개에서 10개까지가 되고, 이 경우들을 따져보면 된다.
C1. Potions (Easy Version)
DP문제
점화식을 체크했지만 뭐가 문제인지 계속해서 WA가 나온다. 점화식은 다음과 같다.
dp[i][k] := i번째 포션까지 체크했을 때 이제까지 k개의 포션을 섭취했을 때의 남은 에너지의 최대
dp[i][k] = max(dp[i-1][k-1] + ai (if dp[i-1][k-1]+ai>=0) , dp[i-1][k])
O(n^2)으로 가능하다.
dp를 정말 못푼다. 뭐든지 그리디로 생각하려고 하고, 그렇기 때문에 점화식을 구할 생각을 잘 하지 못하는 것 같다. 특히 이 문제는 napsack같은 느낌이 솔솔 나는데 아직 머릿속에 그려지지 않는 것을 보면 많이 학습해서 적응이 되게끔 해야겠다는 생각이 든다.
'대회 > 코드포스' 카테고리의 다른 글
#731 div3 7/11 virtual (0) 2021.07.11 #728 div2 6/26 (0) 2021.06.30 #721 div2 5/23 virtual (0) 2021.05.23 Educational 107 div2 5/14 virtual (0) 2021.05.14 #716 div2 04/19 (0) 2021.04.20