๐จ๐ป๐ซ ํ๋ก๊ทธ๋๋ฐ(8)
-
[๋ฐฑ์ค] 13306๋ฒ: ํธ๋ฆฌ
๋ฌธ์ ๋งํฌ: [๋ฐฑ์ค] 13306๋ฒ ํธ๋ฆฌ 13306๋ฒ: ํธ๋ฆฌ ํ์ค ์ ๋ ฅ์ผ๋ก ๋ค์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค. ์ฒซ ๋ฒ์งธ ์ค์๋ ํธ๋ฆฌ์ ์ ์ ์ ๊ฐ์์ ์ง์์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ๋ ์ ์ N๊ณผ Q (1 ≤ N, Q ≤ 200,000)๊ฐ ์ฃผ์ด์ง๋ค. ๋ค์ N-1๊ฐ์ ์ค์ i๋ฒ์งธ ์ค์๋ ์ ์ i+1์ ๋ถ www.acmicpc.net 1. ๋ฌธ์ ์์ฝ ํธ๋ฆฌ๊ตฌ์กฐ์์ ๋ถ๋ชจ์ ์ ์ ๋ํ ์ ๋ณด์ ์ฐ๊ฒฐ๊ฒฝ๋ก๋ฅผ ๋ฌป๋ ๋ฌธ์ ์ธ๋ฐ์. ์งํฉ์ ๋ํ์์์ ๋ถ๋ชจ์ ์ ๋น์ทํ ๋ง ๊ฐ์ง์๋์? ์ ๋ฒ ์๋ฃ๊ตฌ์กฐ ํฌ์คํ ์์ ๋ค๋ค๋ ๋์ค์กฐ์ธํธ ์๋ฃ๊ตฌ์กฐ์ ์ ๋์จ ํ์ธ๋ ์ฐ์ฐ์ ์ด์ฉํ์ฌ ํธ๋ ๋ฌธ์ ์์ต๋๋ค. N๊ฐ์ ์ ์ ์ด ์ซ์ 1๋ถํฐ N๊น์ง๋ก ํํ๋๊ณ ๋ฃจํธ๋ ํญ์ 1์ ๋๋ค. ํธ๋ฆฌ์ ์ ์ ๊ฐ์ N, ์ง์์ ๊ฐ์ Q๊ฐ ์ฃผ์ด์ง๊ณ 2๋ฒ์ ์ ๋ถํฐ N๋ฒ ์ ์ ๊น์ง ๋ถ๋ชจ์ ์ ์ ๋ํ๋ด๋ ์ ์ ..
2021.01.12 -
[๋ฐฑ์ค] 11377๋ฒ: ์ดํ๊ฐํธ 3
๋ฌธ์ ๋งํฌ : [๋ฐฑ์ค] 11377๋ฒ: ์ดํ๊ฐํธ 3 11377๋ฒ: ์ดํ๊ฐํธ 3 ์ฒซ์งธ ์ค์ ์ง์์ ์ N๊ณผ ์ผ์ ๊ฐ์ M, ์ผ์ 2๊ฐํ ์ ์๋ ์ง์์ ์ K๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ N, M ≤ 1,000, 1 ≤ K ≤ N) ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ i๋ฒ์งธ ์ค์๋ i๋ฒ ์ง์์ด ํ ์ ์๋ ์ผ์ ๊ฐ์์ ํ ์ ์ www.acmicpc.net 1. ๋ฌธ์ ๊ฐํธ๋ค ํ์ฌ์๋ ์ง์์ด N๋ช ์ด ์๊ณ , ํด์ผํ ์ผ์ด M๊ฐ๊ฐ ์๋ค. ์ง์์ 1๋ฒ๋ถํฐ N๋ฒ๊น์ง ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๊ณ , ์ผ์ 1๋ฒ๋ถํฐ M๋ฒ๊น์ง ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๋ค. ๊ฐ ์ง์์ ํ ๊ฐ์ ์ผ๋ง ํ ์ ์๊ณ , ๊ฐ๊ฐ์ ์ผ์ ๋ด๋นํ๋ ์ฌ๋์ 1๋ช ์ด์ด์ผ ํ๋ค. ๋จ, N๋ช ์ค์์ K๋ช ์ ์ผ์ ์ต๋ 2๊ฐํ ์ ์๋ค. ๊ฐ๊ฐ์ ์ง์์ด ํ ์ ์๋ ์ผ์ ๋ชฉ๋ก์ด ์ฃผ์ด์ก์ ๋, M๊ฐ์ ์ผ ์ค์์..
2021.01.10 -
[๋ฐฑ์ค] 9576๋ฒ: ์ฑ ๋๋ ์ฃผ๊ธฐ
๋ฌธ์ ๋งํฌ: [๋ฐฑ์ค] 9576๋ฒ: ์ฑ ๋๋ ์ฃผ๊ธฐ 20๋ ์ ๋ง์ง๋ง ์ฃผ๋ง ์ ๋ณด๋ด์ จ๋์? ์ฐ๋ง์ ์ฆ๊ฑฐ์ด ์๊ฐ ๋ณด๋ด์๊ณ ์ ์ ์ ๋นํ ๋จน๋๊ฒ ์ข๊ฒ ์ต๋๋ค.. ๊ฐ์ด ๋ฌธ์ ํ์ด๋ณผ๊น์?. ๋ฌธ์ ๋ฐฑ์ค์ด๋ ๋ฐฉ ์ฒญ์๋ฅผ ํ๋ฉด์ ํ์ ์๋ ์ ๊ณต ์์ ์ ์ฌ๋๋ค์๊ฒ ๋๋ ์ฃผ๋ ค๊ณ ํ๋ค. ๋๋ ์ค ์ฑ ์ ๋ชจ์๋ณด๋ ์ด N๊ถ์ด์๋ค. ์ฑ ์ด ๋๋ฌด ๋ง๊ธฐ ๋๋ฌธ์ ๋ฐฑ์ค์ด๋ ์ฑ ์ ๊ตฌ๋ถํ๊ธฐ ์ํด ๊ฐ๊ฐ 1๋ถํฐ N๊น์ง์ ์ ์ ๋ฒํธ๋ฅผ ์ค๋ณต๋์ง ์๊ฒ ๋งค๊ฒจ ๋์๋ค.์กฐ์ฌ๋ฅผ ํด ๋ณด๋ ์ฑ ์ ์ํ๋ ์๊ฐ๋ํ๊ต ํ๋ถ์์ด ์ด M๋ช ์ด์๋ค. ๋ฐฑ์ค์ด๋ ์ด M๋ช ์๊ฒ ์ ์ฒญ์์ ๋ ์ ์ a, b (1 ≤ a ≤ b ≤ N)๋ฅผ ์ ์ด ๋ด๋ผ๊ณ ํ๋ค. ๊ทธ๋ฌ๋ฉด ๋ฐฑ์ค์ด๋ ์ฑ ๋ฒํธ๊ฐ a ์ด์ b ์ดํ์ธ ์ฑ ์ค ๋จ์์๋ ์ฑ ํ ๊ถ์ ๊ณจ๋ผ ๊ทธ ํ์์๊ฒ ์ค๋ค. ๋ง์ฝ a๋ฒ๋ถํฐ b๋ฒ๊น์ง์ ๋ชจ๋ ์ฑ ์ ์ด๋ฏธ ๋ค๋ฅธ..
2020.12.28 -
[๋ฐฑ์ค] 2470 ๋ฒ: ๋ ์ฉ์ก
๋ฌธ์ ๋งํฌ: [๋ฐฑ์ค] 2470๋ฒ: ๋ ์ฉ์ก ํญ์ ์ด๋ถํ์๊ณผ upper_bound, lower_bound๋ฅผ ์ฌ์ฉํ ๋๋ฉด ํท๊ฐ๋ฆฌ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ธ๋ก๊ทธ์ ํ๋ฒ ์ ๋ฆฌ๋ฅผ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋๋ค์. ๊ฐ์ด ๋ฌธ์ ํ์ด๋ด ์๋ค! ๋ฌธ์ KOI ๋ถ์ค ๊ณผํ์ฐ๊ตฌ์์์๋ ๋ง์ ์ข ๋ฅ์ ์ฐ์ฑ ์ฉ์ก๊ณผ ์์นผ๋ฆฌ์ฑ ์ฉ์ก์ ๋ณด์ ํ๊ณ ์๋ค. ๊ฐ ์ฉ์ก์๋ ๊ทธ ์ฉ์ก์ ํน์ฑ์ ๋ํ๋ด๋ ํ๋์ ์ ์๊ฐ ์ฃผ์ด์ ธ์๋ค. ์ฐ์ฑ ์ฉ์ก์ ํน์ฑ๊ฐ์ 1๋ถํฐ 1,000,000,000๊น์ง์ ์์ ์ ์๋ก ๋ํ๋ด๊ณ , ์์นผ๋ฆฌ์ฑ ์ฉ์ก์ ํน์ฑ๊ฐ์ -1๋ถํฐ -1,000,000,000๊น์ง์ ์์ ์ ์๋ก ๋ํ๋ธ๋ค.๊ฐ์ ์์ ๋ ์ฉ์ก์ ํผํฉํ ์ฉ์ก์ ํน์ฑ๊ฐ์ ํผํฉ์ ์ฌ์ฉ๋ ๊ฐ ์ฉ์ก์ ํน์ฑ๊ฐ์ ํฉ์ผ๋ก ์ ์ํ๋ค. ์ด ์ฐ๊ตฌ์์์๋ ๊ฐ์ ์์ ๋ ์ฉ์ก์ ํผํฉํ์ฌ ํน์ฑ๊ฐ์ด 0์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ฉ์ก..
2020.12.26 -
[๋ฐฑ์ค] 1644๋ฒ: ์์์ ์ฐ์ํฉ
๋ฌธ์ ๋งํฌ: [๋ฐฑ์ค] 1644๋ฒ: ์์์ ์ฐ์ํฉ ์ค๋๋ ๊พธ์คํ ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๋ถํด๋ด ์๋ค! ๋งค์ผ ๊พธ์คํ ์กฐ๊ธ์ฉ ํ๋ค ๋ณด๋ฉด ์ ๋ ์ธ์ ๊ฐ ์ํด์ง์ง ์์๊น์? ๋ฉฐ์น ์ ๋จ์ 20๋ , ๋์ฑ ํ๋ด๋ด ์๋ค! ๋ฌธ์ ํ๋ ์ด์์ ์ฐ์๋ ์์์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ ์์ฐ์๋ค์ด ์๋ค. ๋ช ๊ฐ์ง ์์ฐ์์ ์๋ฅผ ๋ค์ด ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. 3 : 3 (ํ ๊ฐ์ง)41 : 2+3+5+7+11+13 = 11+13+17 = 41 (์ธ ๊ฐ์ง)53 : 5+7+11+13+17 = 53 (๋ ๊ฐ์ง) ํ์ง๋ง ์ฐ์๋ ์์์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ ์์ฐ์๋ค๋ ์๋๋ฐ, 20์ด ๊ทธ ์์ด๋ค. 7+13์ ๊ณ์ฐํ๋ฉด 20์ด ๋๊ธฐ๋ ํ๋ 7๊ณผ 13์ด ์ฐ์์ด ์๋๊ธฐ์ ์ ํฉํ ํํ์ด ์๋๋ค. ๋ํ ํ ์์๋ ๋ฐ๋์ ํ ๋ฒ๋ง ๋ง์ ์ ์ฌ์ฉ๋ ์ ์๊ธฐ ๋๋ฌธ์, 3+5+5+7..
2020.12.25 -
[์๋ฃ๊ตฌ์กฐ] ๋์ค์กฐ์ธํธ-์ (Disjoint-Set) - ์ ๋์จ ํ์ธ๋
ํด๋น ๊ธ์ ๋ง์ด๊ตฌ๋ฏธ๋์ ๊ธ๊ณผ ์ํค๋ฐฑ๊ณผ๋ฅผ ์ฐธ๊ณ ํ๋ฉฐ ์ค์ค๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค. Disjoint-Set์ ๊ฐ์ด ๊ณต๋ถํด๋ด ์๋ค! Disjoint(์๋ก์) Set(์งํฉ)๋ ๋ง์ ์๋ก์ ๋ถ๋ถ์งํฉ๋ค๋ก ๋๋ ์ง ์์๋ค์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์กฐ์ํ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ์ด๋ฌํ ํน์ง์ผ๋ก ์ธํด Disjoint Set์ ํํฐ์ (partitioning) ๋ฌธ์ ์ ์ฃผ๋ก ์ด์ฉ๋ฉ๋๋ค. Disjoint Set ์๋ฃ๊ตฌ์กฐ์๋ 3๊ฐ์ง์ ์ค์ํ ์ฐ์ฐ์ด ์กด์ฌํฉ๋๋ค. ์๋ก์ ์งํฉ์ด๋? ๊ณตํต ์์๊ฐ ์๋ ๋ ์งํฉ, ๊ต์งํฉ์ด ๊ณต์งํฉ์ธ ์งํฉ์ ๋๋ค. ์ฐ์ฐ ๋ฉ์ดํฌ ์ (MakeSet): ๋ง ๊ทธ๋๋ก ํน์ ํ ์์๋ง์ ๊ฐ์ง๋ ์งํฉ(๋ค)์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ํ์ธ๋ (Find): ์ด๋ค ์์๊ฐ ์ฃผ์ด์ก์ ๋ ์ด ์์๊ฐ ์ํ ์งํฉ์ ๋ฐํ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํด..
2020.12.24