AtCoder Beginner Contest 328
ย - Last update: 2023-11-11

ABC 328 Upsolving

ํŒŒ๋ฉธ์  ๋–ก์ƒ

  • ๋Œ€ํšŒ ์ฐธ๊ฐ€ ์œ ๋ฌด: Y
  • ์ตœ์ข… Performance: 1319 (Rank: 1639 / 10710)
  • Round ๋งํฌ: Top / Tasks
  • ๋ฌธ์ œ๋ณ„ ๊ฒฐ๊ณผ
ABCDEFG
AC
AC
AC
AC
AC
WA
-

์ƒ๋‹นํžˆ ์›ฐ๋…ผ๋“ค์ด์—ˆ๋‹ค. F๋ฒˆ๋„ ์›ฐ๋…ผ์ด๋ผ๋Š”๋ฐ ๋ชปํ’€์–ด์„œ ์•„์‰ฝ๋‹ค. ์ €๋ฒˆ์ฃผ D๋ฒˆ์ด๋ž‘๋„ ๋А๋‚Œ์€ ๋น„์Šทํ–ˆ๋Š”๋ฐ, ๋ณต๊ธฐ๋ฅผ ์•ˆํ•ด์„œ ์ข€ ์•„์‰ฌ์› ๋‹ค.

A - Not Too Hard

๊ทธ๋ƒฅ ๋Œ€์†Œ๋น„๊ต ํ•˜๋Š” ๊ธฐ์ดˆ ๋ฌธ์ œ.

B - 11/11

์ œ๋ชฉ๋งŒ ๋ณด๊ณ  ๋นผ๋นผ๋กœ ๋ฐ์ด ๊ธฐ๋… ๋ฌธ์ œ์ธ๊ฐ€ ํ–ˆ๋Š”๋ฐ ๊ทธ๊ฑด ์ „ํ˜€ ์•„๋‹ˆ์—ˆ๊ณ , ์›” / ์ผ์ด ๋ชจ๋‘ ๊ฐ™์€ ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ๋“ค์„ ์„ธ๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์กฐ๊ฑด ์ฐพ๋Š”๊ฒŒ ์ข€ ๋นก์น˜๋Š” ๋ฌธ์ œ. ์š”๊ตฌ์‚ฌํ•ญ์˜ ๋ณต์žก์„ฑ๋งŒ์œผ๋กœ Silver 2๋ฅผ ์ค„๋งŒํ•œ ๋ฌธ์ œ์ธ๊ฑฐ ๊ฐ™๋‹ค.

C - Consecutive

N,Qโ‰ค3ร—105N, Q \le 3 \times 10^5 ์ธ ์กฐ๊ฑด์œผ๋กœ, ๋ฌด์กฐ๊ฑด ์ „์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋‹คํ–‰ํžˆ๋„, ์กฐ๊ธˆ ์ฝ์–ด๋ณด๋ฉด ๋นˆ์ถœ ์œ ํ˜•์ธ Prefix Sum์ž„์„ ์•Œ ์ˆ˜ ์žˆ๊ณ , ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค. Prefix Sum์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ์ฟผ๋ฆฌ๋ฅผ O(1)O(1)๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, TLE๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.

D - Take ABC

๋ฐฑ์ค€์ด ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ •ํ•ด๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๊ฒ ๋Š”๋ฐ, ๋‚˜๋Š” Linked List๋กœ ํ’€์—ˆ๋‹ค. Stack ์จ๋„ ๋ ๋“ฏ ํ•˜๋‹ค.

E - Modulo MST

MST๋Š” ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ฌธ์ œ๋Š” Modulo ๊ฒฐ๊ณผ๋ฅผ ์ตœ์†Œํ™” ํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, PQ๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด๋Š” ๋ถˆ๊ฐ€ํ•˜๋‹ค. ๋‹คํ–‰ํžˆ๋„, Nโ‰ค8N \le 8์ด๋ผ์„œ, ์™„์ „ ํƒ์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค. MST์—์„œ ํ–ˆ๋˜๋Œ€๋กœ, ๊ฐ„์„ ์„ Nโˆ’1N-1๊ฐœ๋งŒ ์‚ฌ์šฉํ•˜๋ฉด์„œ, 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 {
// cycle
flag = false;
break;
}

F - Good Set Query (To be upsolved...)

ํ’€์ด ์‹คํŒจ. ์–ด๋””์„œ ํ‹€๋ฆฌ๋Š”์ง€๋Š” ์•Œ์•˜์ง€๋งŒ ํ•ด๊ฒฐ์„ ๋ชปํ–ˆ๋‹ค. ์ด๊ฑฐ๋„ ๋ฐฑ์ค€์— ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์—๋””ํ† ๋ฆฌ์–ผ ๋ณด์ง€ ์•Š๊ณ  ํ•œ๋ฒˆ ํ’€์–ด๋ณผ ์˜ˆ์ •.

G - Cut and Reorder (To be upsolved?)

์—…์†”๋น™ ํ• ์ง€ ์•ˆํ• ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๋‚˜๋ฆ„ ์ „ํ˜•์ ์ธ DP ๋ฌธ์ œ์ด์ง€๋งŒ, ๋ฌธ์ œ ์กฐ๊ฑด ๋•Œ๋ฌธ์— DP ์ตœ์ ํ™”๊ฐ€ ๋ถ™์–ด์•ผ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ์—ฐ์Šต์‚ผ์•„ ํ•œ๋ฒˆ ํ’€์–ด๋ณผ๊นŒ... (๋น„ํŠธ DP?)

๐Ÿท๏ธ ์ฃผ์ œ ๋ชฉ๋ก: