ํ๋ฉธ์ ๋ก์
A | B | C | D | E | F | G |
---|---|---|---|---|---|---|
AC | AC | AC | AC | AC | WA | - |
์๋นํ ์ฐ๋
ผ๋ค์ด์๋ค. F
๋ฒ๋ ์ฐ๋
ผ์ด๋ผ๋๋ฐ ๋ชปํ์ด์ ์์ฝ๋ค. ์ ๋ฒ์ฃผ D
๋ฒ์ด๋๋ ๋๋์ ๋น์ทํ๋๋ฐ, ๋ณต๊ธฐ๋ฅผ ์ํด์ ์ข ์์ฌ์ ๋ค.
๊ทธ๋ฅ ๋์๋น๊ต ํ๋ ๊ธฐ์ด ๋ฌธ์ .
์ ๋ชฉ๋ง ๋ณด๊ณ ๋นผ๋นผ๋ก ๋ฐ์ด ๊ธฐ๋
๋ฌธ์ ์ธ๊ฐ ํ๋๋ฐ ๊ทธ๊ฑด ์ ํ ์๋์๊ณ , ์ / ์ผ์ด ๋ชจ๋ ๊ฐ์ ์ซ์๋ก ๊ตฌ์ฑ๋๋ ๊ฒฝ์ฐ๋ค์ ์ธ๋ ๋ฌธ์ ์๋ค. ์กฐ๊ฑด ์ฐพ๋๊ฒ ์ข ๋นก์น๋ ๋ฌธ์ . ์๊ตฌ์ฌํญ์ ๋ณต์ก์ฑ๋ง์ผ๋ก Silver 2
๋ฅผ ์ค๋งํ ๋ฌธ์ ์ธ๊ฑฐ ๊ฐ๋ค.
์ธ ์กฐ๊ฑด์ผ๋ก, ๋ฌด์กฐ๊ฑด ์ ์ฒ๋ฆฌ๊ฐ ํ์ํจ์ ์ ์ ์๋ค. ๋คํํ๋, ์กฐ๊ธ ์ฝ์ด๋ณด๋ฉด ๋น์ถ ์ ํ์ธ Prefix Sum
์์ ์ ์ ์๊ณ , ์ฝ๊ฒ ํ ์ ์์๋ค. Prefix Sum
์ ์ฌ์ฉํ๋ฉด ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ๋ก ์ฒ๋ฆฌํ ์ ์์ผ๋ฏ๋ก, TLE
๋ฅผ ํผํ ์ ์๋ค.
๋ฐฑ์ค์ด ๋น์ทํ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋ค. ์ ํด๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ ์ ์๊ฒ ๋๋ฐ, ๋๋ Linked List
๋ก ํ์๋ค. Stack
์จ๋ ๋ ๋ฏ ํ๋ค.
MST
๋ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ
๋ฑ์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ๊ตฌํ ์ ์๋๋ฐ, ๋ฌธ์ ๋ Modulo
๊ฒฐ๊ณผ๋ฅผ ์ต์ํ ํด์ผ ํ๋ค. ๋ฐ๋ผ์, PQ
๋ฅผ ์ฌ์ฉํ ํ์ด๋ ๋ถ๊ฐํ๋ค. ๋คํํ๋, ์ด๋ผ์, ์์ ํ์์ด ๊ฐ๋ฅํ๋ค. MST
์์ ํ๋๋๋ก, ๊ฐ์ ์ ๊ฐ๋ง ์ฌ์ฉํ๋ฉด์, Cycle
์ด ์๋๋ก ํ๋ ๊ฒ๋ค์ ์์ ํ์ ํด์ ์ต์๊ฐ ๋๋ ๊ฐ์ ๊ตฌํด์ฃผ๋ฉด ๋๊ฒ ๋ค.
Cycle
ํ์ ์ ์๋์ฒ๋ผ ํ๋ค.
if (uf.findRoot(c.s) != uf.findRoot(c.e)) {// no cycle: ๋น์ฉ์ ๋ํด์ค๋ค.uf.merge(c.s, c.e);csum += c.weight;csum %= K;} else {// cycleflag = false;break;}
ํ์ด ์คํจ. ์ด๋์ ํ๋ฆฌ๋์ง๋ ์์์ง๋ง ํด๊ฒฐ์ ๋ชปํ๋ค. ์ด๊ฑฐ๋ ๋ฐฑ์ค์ ๋น์ทํ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋ค. ์๋ํ ๋ฆฌ์ผ ๋ณด์ง ์๊ณ ํ๋ฒ ํ์ด๋ณผ ์์ .
์
์๋น ํ ์ง ์ํ ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค. ๋๋ฆ ์ ํ์ ์ธ DP
๋ฌธ์ ์ด์ง๋ง, ๋ฌธ์ ์กฐ๊ฑด ๋๋ฌธ์ DP ์ต์ ํ
๊ฐ ๋ถ์ด์ผ ํ๋ค๊ณ ํ๋ค. ์ฐ์ต์ผ์ ํ๋ฒ ํ์ด๋ณผ๊น... (๋นํธ DP?)