[코포 라운드 글 #3] Educational Codeforces Round 104 (Rated for Div. 2)

2021. 2. 18. 02:42Contest/Codeforces

Round: Educational Codeforces Round 104 (Rated for Div. 2)

Rank: 1119

solved: 4

Performance: 1781

rating change: +116

 

잘보긴 했지만 그리 좋은셋은 아닌 거 같다. 

 

A. (00:02)

배열에서의 최솟값의 갯수를 t라고 하고, 배열의 크기가 n이면 답은 n-t가 된다.

코드

 

djayy035/dj035_PS

코드저장소. Contribute to djayy035/dj035_PS development by creating an account on GitHub.

github.com

B. (00:23)

문제에서 주어진 n,k를 사용해서 나타내보자면,

n이 짝수일때 둘이 자는 곳이 겹치지 않으므로 평범하게 구해주면 된다.

n이 홀수일때 만나는 주기가 있으므로 만나는 주기를 고려하여 식을 세우면 된다. 뇌절

코드

 

djayy035/dj035_PS

코드저장소. Contribute to djayy035/dj035_PS development by creating an account on GitHub.

github.com

C. (01:04)

문제를 관찰하면 n이 홀수일때 비기는 경우가 없고, n이 짝수일때 비기는 경우가 생긴다.

그렇다면 이러한 비기는 경우가 있는 경우에는 똑같이 n번씩 비기면 되지만 n이 최소이기 때문에 각각 1번씩 비기면 된다.

이러한 조건을 만족해서 출력을 설계하면 된다. 거기서 뇌절이 온게 문제였다..

코드

 

djayy035/dj035_PS

코드저장소. Contribute to djayy035/dj035_PS development by creating an account on GitHub.

github.com

D. (01:09)

이게 사실상 B보다 훨씬 더 쉬웠다. C보다 먼저 제출했는데 시간초과 나길래 접고 C 풀고 다시 봤더니 그 오류가 바로 보여서 고치고 맞았다...

c^2=a^2+b^2, c = a^2-b를 만족하는 a,b,c를 찾아야 한다.

a^2 = b+c, c^2=b+c+b^2,

c^2-b^2=b+c, (b+c)(c-b)=b+c,

b+c>0, c-b=1

c=b+1, a^2 = 2*b+1,

2*b = a^2-1, b=(a^2-1)/2, c=(a^2+1)/2가 된다.

그리고 (a^2-1), (a^2+1)은 모두 짝수여야 하므로 a가 홀수여야 한다. 

이제 a,(a^2-1)/2,(a^2+1)/2가 조건에 맞는지 브루트 포스로 확인해주면 된다.

코드 

 

djayy035/dj035_PS

코드저장소. Contribute to djayy035/dj035_PS development by creating an account on GitHub.

github.com

E. (업솔빙 예정)