ABC lessons learned10 - zettsu-t/zettsu-t.github.io GitHub Wiki

AtCoder Beginner Contest lessons learned (ๆœ€ๆ–ฐใพใง)

ใ‚ณใƒณใƒ†ใ‚นใƒˆใซๅ‚ๅŠ ใ—ใŸๆ•™่จ“ใ‚’ใพใจใ‚ใฆใ„ใใพใ™ใ€‚ๆœ€่ฟ‘ใฏARCใซๅ‚ๅŠ ใ—ใ€ABCใธใฎratedๅ‚ๅŠ ใฏ่ฆ‹้€ใ‚Šไธญใงใ™ใ€‚

ใƒˆใƒƒใƒ—ใƒšใƒผใ‚ธใธ ABC ๅ‚ๅŠ ่จ˜ใธ ARC ๅ‚ๅŠ ่จ˜ใธ

ABC 401-A

ใƒใƒใƒฃใงใฏใชใใ€ไธ€ๅ•ใšใค่งฃใ„ใŸใ€‚่€ƒใˆใŒใพใจใพใ‚‰ใชใ„ใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$\lfloor S/100 \rfloor = 2$ ใชใ‚‰ Success ใ€ใใ†ใงใชใ‘ใ‚Œใฐ Failure ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

ABC 401-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

็Šถๆ…‹ $in \in {False, True}$ ใ‚’่€ƒใˆใ‚‹ใ€‚ๅˆๆœŸ็Šถๆ…‹ใฏ $False$ ใงใ‚ใ‚‹ใ€‚

  • login ใชใ‚‰ $in$ ใ‚’ $True$ ใซใ™ใ‚‹ใ€‚ๅ‰ใฎ็Šถๆ…‹ใฏ้–ขไฟ‚ใชใ„ใ€‚
  • logout ใชใ‚‰ $in$ ใ‚’ $False$ ใซใ™ใ‚‹ใ€‚ๅ‰ใฎ็Šถๆ…‹ใฏ้–ขไฟ‚ใชใ„ใ€‚
  • public ใชใ‚‰ไฝ•ใ‚‚ใ—ใชใ„ใ€‚
  • private ใชใ‚‰ใ€ $in = False$ ใฎๆ™‚ใซ็ญ”ใˆใ‚’1ๅข—ใ‚„ใ™ใ€‚ $in = True$ ใชใ‚‰็ญ”ใˆใฏๅค‰ใ‚ใ‚‰ใชใ„ใ€‚ใ„ใšใ‚Œใซใ›ใ‚ˆ็Šถๆ…‹ใ‚’ๅค‰ใˆใชใ„ใ€‚

ABC 401-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

็ดฏ็ฉๅ’Œใ ใจใ™ใๅˆ†ใ‹ใฃใŸใŒๆทปใˆๅญ—ใงๆ‚ฉใ‚“ใ ใ€‚

$N = 1$ ใชใ‚‰็ญ”ใˆใฏ1ใงใ‚ใ‚‹ใ€‚ใ“ใฎใƒใƒผใƒ‰ใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐใ‚’้–“้•ใˆใŸใ€‚ไปฅไธ‹ $|A| > 1$ ใจใ™ใ‚‹ใ€‚ $A$ ใฎๅ€คใงใฏใชใ็ดฏ็ฉๅ’Œ $C_i = \sum_{j=0}^{i}$ ใ‚’ๆŒใคใ€‚

  • $C_{-1} = 0$ ใงใ‚ใ‚‹
  • $0 \leq i < K$ ใฎใจใใ€ $C_i = i + 1$ ใงใ‚ใ‚‹
  • $i \geq K$ ใฎใจใใ€ $C_i = C_{i-1} + C_{i-1} - C_{i-K-1}$ ใงใ‚ใ‚‹

็ญ”ใˆใฏ $C_N - C_{N-1}$ ใงใ‚ใ‚‹ใ€‚ModใŒใ„ใคใ‚‚ใฎ็ด ๆ•ฐใงใฏใชใ„ใฎใงใ€ไปฅไธ‹ใฎ้€šใ‚Šใซใ™ใ‚‹ใ€‚

atcoder::modint::set_mod(1000000000);
using ModInt = atcoder::modint;

ๅฎŸใฏ็ดฏ็ฉๅ’Œใงใฏใชใใ€ใ‚นใƒฉใ‚คใƒ‡ใ‚ฃใƒณใ‚ฐใ‚ฆใ‚ฃใƒณใƒ‰ใ‚ฆใง่งฃใ‘ใ‚‹ใ€‚ $Nlog(N)$ ่งฃๆณ•ใงใ‚ˆใ‘ใ‚Œใฐใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใŒ็ฐกไพฟใ‚‰ใ—ใ„ใ€‚

ABC 401-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๆ–น้‡ใฏใ™ใ็ซ‹ใฃใŸใŒ่€ƒใˆใŒใพใจใพใ‚‰ใชใ„ใ€‚

o ใฎๅ‰ๅพŒใซ . ใ‚’็ฝฎใ‘ใชใ„ใฎใงใ€ o ใฎๅ‰ๅพŒใ‚’ . ใงๅŸ‹ใ‚ใ‚‹ใ€‚ๆฎ‹ใฃใŸ ? ใฏ o ใ‚’็ฝฎใใŸใ‘ใ‚Œใฐ็ฝฎใ‘ใ‚‹ๅ ดๆ‰€ใงใ‚ใ‚Šใ€ใใ‚Œใ‚‰ใฎๅ€คใŒ o ใพใŸใฏ . ใซไธ€ๆ„ใซๆฑบใพใ‚‹ใชใ‚‰ใใฎใ‚ˆใ†ใซๆฑบใ‚ใ€ๆฑบใพใ‚‰ใชใ„ใชใ‚‰ ? ใฎใพใพใซใ™ใ‚‹ใ€‚

ไธŠ่จ˜ใฎ้€šใ‚ŠๅŸ‹ใ‚ใŸๅพŒใฎ $S$ ใซๅซใพใ‚Œใ‚‹ o ใŒ $C$ ๅ€‹ใจใ™ใ‚‹ใ€‚ $C = K$ ใชใ‚‰ใ€ๆฎ‹ใ‚Šใฎ ? ใ‚’ใ™ในใฆ . ใซ็ฝฎใๆ›ใˆใŸใ‚‚ใฎใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚ไปฅไธ‹ๅฐ‘ใชใใจใ‚‚ไธ€ๅ€‹ไปฅไธŠใฎ ? ใ‚’ o ใซใ—ใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„็Šถๆณใ‚’่€ƒใˆใ‚‹ใ€‚

? ใ‚’ใƒฉใƒณใƒฌใƒณใ‚ฐใ‚นๅœง็ธฎใ™ใ‚‹ใ€‚ใƒฉใƒณ $i$ ใŒ้•ทใ• $L_i$ ใจใ—ใฆใ€ o ใ‚’ๆœ€ๅคง $\lceil L_i/2 \rceil$ ๅ€‹็ฝฎใ‘ใ‚‹ใ€‚ๆœ€ๅคง้™ o ใ‚’็ฝฎใใจ $D = \sum L_i$ ๅ€‹็ฝฎใ‘ใ‚‹ใŒใ€ $D < K - C$ ๅ€‹ใชใ‚‰ใฉใฎ ? ใซใคใ„ใฆใ‚‚ใ€ o ใซ็ฝฎใๆ›ใˆใ‚‹ใ‹ . ใซใ™ใ‚‹ใ‹้ธๆŠžใฎไฝ™ๅœฐใŒใ‚ใ‚‹ใฎใงใ€ใ™ในใฆใฎ ? ใฏ ? ใฎใพใพใงใ‚ใ‚‹ใ€‚

$D = K - C$ ๅ€‹ใชใ‚‰ๆœ€ๅคง้™ o ใซ็ฝฎใๆ›ใˆใ‚‹ใ€‚ๅฅ‡ๆ•ฐ้•ทใฎใƒฉใƒณใฏ o.o.o ใจใ€ o ใงๅง‹ใพใ‚Š o ใง็ต‚ใ‚ใ‚Š o. ใŒไบคไบ’ใซ็ถšใใƒ‘ใ‚ฟใƒผใƒณใ—ใ‹ใชใ„ใฎใงใใฎใ‚ˆใ†ใซ ? ใ‚’็ฝฎใๆ›ใˆใ‚‹ใ€‚ๅถๆ•ฐ้•ทใฎใƒฉใƒณใฏ o ๅง‹ใพใ‚Šใจ . ๅง‹ใพใ‚Šใฎไธกๆ–นใซใชใ‚Šใ†ใ‚‹ใฎใงใ€ ? ใฎใพใพใงใ‚ใ‚‹ใ€‚

ไธŠ่จ˜ใฎ้€šใ‚Š $S$ ใฎ ? ใ‚’็ฝฎใๆ›ใˆใŸใ‚‚ใฎใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚ๅ…ฌๅผ่งฃ่ชฌ1ใฎ้€šใ‚Šใงใ‚ใ‚‹ใ€‚

ABC 401-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๆ–น้‡ใฏใ™ใ็ซ‹ใฃใŸใŒ่€ƒใˆใŒใพใจใพใ‚‰ใชใ„ใ€‚

ๅ•้กŒใ‚’ไปฅไธ‹ใฎใ‚ˆใ†ใซ่ชญใฟๆ›ฟใˆใ‚‹ใ€‚

  1. ้ ‚็‚น $1..K$ ใ ใ‘ใ‹ใ‚‰ใชใ‚‹ใ‚ฐใƒฉใƒ• $G_k$ ใŒ้€ฃ็ตใ‹ใฉใ†ใ‹่ชฟในใ‚‹ใ€‚้€ฃ็ตใงใฏใชใ„ใ€ใคใพใ‚Š้ ‚็‚น1ใ‚’ๅซใ‚€้€ฃ็ตๆˆๅˆ† $S_k$ ใฎใ‚ตใ‚คใ‚บใŒ $K$ ๆœชๆบ€ใชใ‚‰ -1 ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚
  2. ้ ‚็‚น $1..K$ ใ ใ‘ใ‹ใ‚‰ใชใ‚‹ใ‚ฐใƒฉใƒ•ใ‹ใ‚‰ใ€ ้ ‚็‚น $K+1..N$ ใซ็›ดๆŽฅ่พบใŒๅ‡บใฆใ„ใ‚‹ใชใ‚‰ใ€ใใฎ้ ‚็‚น้›†ๅˆ $R_k$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ไธŠ่จ˜ใง -1 ใ‚’ๅ‡บๅŠ›ใ—ใชใ‘ใ‚Œใฐใ€ $|R_k|$ ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

$K = 1..N$ ใซใคใ„ใฆใ€ไธŠ่จ˜ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ $K = 1$ ใซใคใ„ใฆใฏใ€ $S_1 = {1}$ ใ€ $R_1$ ใฏ้ ‚็‚น1ใจ็›ดๆŽฅ่พบใงใคใชใŒใฃใฆใ„ใ‚‹้ ‚็‚น $2..N$ ใงใ‚ใ‚‹ใ€‚

้ ‚็‚น $K-1$ ใพใงๆฑ‚ใพใฃใฆใ„ใฆใ€ $K$ ใซใคใ„ใฆๆฑ‚ใ‚ใ‚‹ใ€‚้ ‚็‚น $K$ ใจ็›ดๆŽฅใคใชใŒใฃใฆใ„ใ‚‹้ ‚็‚น้›†ๅˆใ‚’ $U$ ใจใ™ใ‚‹ใ€‚

  • $j \in U$ ใซใคใ„ใฆใ€ $j < k$ ใชใ‚‰้ ‚็‚น1ใจ ้ ‚็‚น $j$ ใ‚’้€ฃ็ตใ™ใ‚‹ใ€‚
  • $R_k = R_{k-1} \setminus k$ ใงๅˆๆœŸๅŒ–ใ™ใ‚‹ใ€‚ใคใพใ‚Š $R_k$ ใ‹ใ‚‰ $k$ ใ‚’้™คใใ€‚
  • $j \in U$ ใซใคใ„ใฆใ€ $j < k$ ใชใ‚‰ $R_k$ ใ‹ใ‚‰ $j$ ใ‚’้™คใ
  • $j \in U$ ใซใคใ„ใฆใ€ $j > k$ ใชใ‚‰ $R_k$ ใซ $j$ ใ‚’ๅŠ ใˆใ‚‹
  • ้ ‚็‚น1ใฎ้€ฃ็ตๆˆๅˆ†ใฎๅคงใใ•ใŒ $k$ ใชใ‚‰(ๆ—ข่ฟฐใฎ้€šใ‚Š้ ‚็‚น $1..k$ ใŒ้€ฃ็ตใชใ‚‰) $|R_k|$ ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚ใใ†ใงใชใ‘ใ‚Œใฐ -1 ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

่จˆ็ฎ—ใ‚ณใ‚นใƒˆใฏ $R$ ใซ่พบใ‚’ๅ‡บใ—ๅ…ฅใ‚Œใ™ใ‚‹ๅ›žๆ•ฐใงๆฑบใพใ‚‹ใฎใง $O(Nlog(N))$ ใงใ‚ใ‚‹(่พบใฎๆ•ฐใŒ $O(N)$ ใชใฎใง)ใ€‚

ABC 401-G

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

Fๅ•้กŒใฏใ„ใคใพใง็ตŒใฃใฆใ‚‚่งฃใ‘ใชใ„ใฎใซGๅ•้กŒใฏ่งฃใ‘ใŸใ€‚

็ญ”ใˆใฏ $(sx_i, sy_i)$ ใ‹ใ‚‰ $(gx_j, gy_j)$ ใพใงใฎ่ท้›ขใฎใ†ใกใฉใ‚Œใ‹ไธ€ใคใงใ‚ใ‚‹ใ€‚ใใ‚Œไปฅๅค–ใฎ่ท้›ขใฏใ‚ใ–ใ‚ใ–ๅฏ„ใ‚Š้“ใ—ใฆใ„ใ‚‹ใฎใงใ‚‚ใฃใจ็Ÿญใใงใใ‚‹ใ€‚ $i,j \in 1..N$ ใฎ่ท้›ขใฎไบŒไน—ใ‚’ๆ•ดๆ•ฐใงๆฑ‚ใ‚ใฆ $L[i,j]$ ใจใ™ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ๅบงๆจ™ๅœง็ธฎใ™ใ‚‹ใ€ใคใพใ‚Šๆ˜‡้ †ใซไธฆในใฆๅŒใ˜ๅ€คใฏๅŒใ˜้ †ไฝใซใ—ใŸใ‚‚ใฎใ‚’ $D[i,j]$ ใจใ™ใ‚‹ใ€‚ $D$ ใŒๅ–ใ‚Šใ†ใ‚‹ๅ€คใ‚’ๆ˜‡้ †ใซไธฆในใŸใ‚‚ใฎใ‚’ $V$ ใจใ™ใ‚‹ใ€‚

$|V| = 1$ ใชใ‚‰ $L$ ใฎๅ”ฏไธ€ใฎๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚ใใ†ใงใชใ‘ใ‚Œใฐ $k \in 1..|V|$ ใงไบŒๅˆ†ๆŽข็ดขใ™ใ‚‹ใ€‚ไฝ•ใ‚’ไบŒๅˆ†ๆŽข็ดขใ™ใ‚‹ใ‹ใจใ„ใ†ใจใ€ $D[i,j] \leq V[k]$ ใซ้™ใฃใŸ $i,j$ ใ ใ‘ใง็›ฎๆจ™ใ‚’้”ๆˆใงใใ‚‹ใ‹ใฉใ†ใ‹ใ‚’ๅˆคๅฎšใ™ใ‚‹ใ€‚

ๅ…ทไฝ“็š„ใซใฏ $(i,j)$ ใฎ็ต„ใ‚’ $N$ ๅ€‹ไปฅไธŠไฝœใ‚Œใ‚‹ใ‹ใฉใ†ใ‹ๅˆคๅฎšใ™ใ‚Œใฐใ‚ˆใใ€ไบŒ้ƒจใ‚ฐใƒฉใƒ•ใฎmax-flowใ‚’ๆฑ‚ใ‚ใฆ $N$ ใ‹ใฉใ†ใ‹ๅˆคๅฎšใ™ใ‚‹ใ€‚ $(Soucre,i,j,Sink)$ ใจใ„ใ†ใ‚ฐใƒฉใƒ•ใ‚’ไฝœใ‚Šใ€ $(Source,i)$ , $(j,Sink)$ ใฏใ™ในใฆใฎ $i,j \in 1..N$ ใซใคใ„ใฆๅฎน้‡1ใฎ่พบใ‚’ๅผตใ‚Šใ€ $(i,j)$ ใฏ $D[i,j] \leq V[k]$ ใชใ‚‰ๅฎน้‡1ใฎ่พบใ‚’ๅผตใ‚‹ใ€‚ $(Source,Sink)$ ใฎๅฎน้‡ใŒ $N$ ใ‹ใฉใ†ใ‹ๅˆคๅฎšใ™ใ‚‹ใ€‚

ๆœ€ๅพŒใซใ€ไบŒๅˆ†ๆŽข็ดขใฎ็ตๆžœ $k$ ใ‚’ $L$ ใซ้€†ๅค‰ๆ›ใ—ใฆๅนณๆ–นๆ น $\sqrt{L}$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใจ็ญ”ใˆใซใชใ‚‹ใ€‚

ABC 402-A

ใƒใƒใƒฃใงใฏใชใใ€ไธ€ๅ•ใšใค่งฃใ„ใŸใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$S$ ใฎๅ…ˆ้ ญใ‹ใ‚‰ๅ„ๆ–‡ๅญ—ใ‚’่ตฐๆŸปใ—ใฆใ€่‹ฑๅคงๆ–‡ๅญ—ใ ใฃใŸใ‚‰ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

ABC 402-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใ“ใ‚Œใพใงใซๆกˆๅ†…ใ—ใŸไบบๆ•ฐใ‚’ $P = 0$ ใงๅˆๆœŸๅŒ–ใ—ใ€ใ“ใ‚Œใพใงใซไธฆใ‚“ใ ไบบใฎ้ฃŸๅˆธ็•ชๅทใ‚’ๅ…ˆ้ ญใ‹ใ‚‰ $V$ ใจใ™ใ‚‹ใ€‚ $V$ ใฏ0-based indexingใจใ™ใ‚‹ใ€‚

  • ใ‚ฏใ‚จใƒช1ใฏ $X$ ใ‚’ $V$ ใฎๆœซๅฐพใซ่ฟฝๅŠ ใ™ใ‚‹
  • ใ‚ฏใ‚จใƒช2ใฏ $V[P]$ ใ‚’ๅ‡บๅŠ›ใ—ใ€ $P$ ใ‚’1ๅข—ใ‚„ใ™ใ€‚

ABC 402-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅˆๆœŸ็Šถๆ…‹ใงใ€ $C[i=1..N]$ ใฏๆ–™็† $i$ ใซๅซใพใ‚Œใ‚‹ๅซŒใ„ใช้ฃŸๆใฎ้›†ๅˆใจใ™ใ‚‹ใ€ $F[j=1..M]$ ใฏ้ฃŸๆ $j$ ใ‚’ๅซใพใชใ„ๆ–™็†ใฎ้›†ๅˆใจใ™ใ‚‹ใ€‚ $B$ ใ‚’ใพใ ่ฆ‹ใฆใ„ใชใ„ใจใใ€็ญ”ใˆใฏ $C[i=1..N]$ ใฎใ†ใก่ฆ็ด ใŒ็ฉบใชใ‚‚ใฎใฎๆ•ฐใงใ‚ใ‚‹ใ€‚

$j = B_k$ ใซใคใ„ใฆไปฅไธ‹ใฎๆ“ไฝœใ‚’่กŒใ†ใ€‚

  • $a \in F[j]$ ใซใคใ„ใฆใ€ $C[a]$ ใ‹ใ‚‰ $j$ ใ‚’้™คใ
  • ใ“ใฎๆ“ไฝœใฎๅ‰ใซ $C[a]$ ใŒ็ฉบใงใฏใชใใ€ใ“ใฎๆ“ไฝœใฎๅพŒใง $C[a]$ ใŒ็ฉบใซใชใฃใŸใ‚‰ใ€ๆ–™็† $a$ ใ‚’ๆ–ฐใŸใซ้ฃŸในใ‚‰ใ‚Œใ‚‹ใ‚ˆใ†ใซใชใฃใŸใฎใง็ญ”ใˆใ‚’1ๅข—ใ‚„ใ™

ABC 402-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

็ทšๅˆ†ใงใฏใชใ็›ด็ทšใ ใฃใŸใ€‚ๅ•้กŒใ‚’่ชญใฟ้•ใˆใฆๆ™‚้–“ใŒๆŽ›ใ‹ใฃใŸใ€‚

ใ™ในใฆใฎ็›ด็ทšใฎ็ต„ใŒไบคใ‚ใ‚‹ใจใใ€็ญ”ใˆใฏ $M(M-1)/2$ ใงใ‚ใ‚‹ใ€‚ๅนณ่กŒใช็›ด็ทšใฏไบคใ‚ใ‚‰ใชใ„ใฎใงใ€ๅนณ่กŒใช็›ด็ทšใฎ็ต„ใ‚’ๆฑ‚ใ‚ใฆ็ญ”ใˆใ‚’ๅผ•ใใ€‚

็›ด็ทšใฎๅ‘ใใฏใ€ $S = (A - 1 + B - 1) mod N$ ใงไธ€ๆ„ใซๆฑบใพใ‚‹ใ€‚ใ‚ˆใฃใฆ็›ด็ทšใฎๅ‘ใ $S = 0..(N-1)$ ใซใคใ„ใฆใ€ใใฎใ‚ˆใ†ใช็›ด็ทšใŒ $L$ ๆœฌใ‚ใ‚‹ใจใใ€็ญ”ใˆใ‹ใ‚‰ $L(L-1)/2$ ใ‚’ๅผ•ใ‘ใฐใ‚ˆใ„ใ€‚ใ“ใ‚Œใ‚’ใ™ในใฆใฎ $S$ ใซใคใ„ใฆๆฑ‚ใ‚ใ‚‹ใ€‚

ๅ…ฌๅผ่งฃ่ชฌ้€šใ‚Šใงใ‚ใ‚‹ใ€‚

ABC 402-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๆ‰€ๆŒ้‡‘ $x$ ใจใ€ๆญฃ่งฃใ—ใŸๅ•้กŒใฎ้›†ๅˆ $U \in 0..2^N-1$ ใฎๅ‹•็š„่จˆ็”ปๆณ• $DP[x][U]$ ใ ใจๆ€ใฃใŸใŒใ€ไฝ•ใ‚’DPใซ่ผ‰ใ›ใ‚‹ใฎใ‹ๅˆ†ใ‹ใ‚‰ใชใใชใฃใŸใ€‚่ผ‰ใ›ใ‚‹ในใใฏ็ขบ็އใงใฏใชใๆœŸๅพ…ๅ€คใงใ€็ญ”ใˆใŒ $DP[X][\emptyset]$ ใ ใจๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸใ€‚ใ‚ณใ‚นใƒˆใฎๅ’ŒใŒใกใ‚‡ใ†ใฉ $X$ ใงใชใใฆใ‚‚ใ“ใฎๆผธๅŒ–ๅผใง่งฃใ‘ใ‚‹ใ“ใจใŒๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸใ€‚ใ‚ˆใ่€ƒใˆใŸใ‚‰ $C_1=C_2=2, X=5, N=2$ ใงใ‚‚ใ“ใ‚ŒใงไธŠๆ‰‹ใใ„ใใจๅˆ†ใ‹ใ‚‹($X > 1$ ใฎๅฅ‡ๆ•ฐใซใคใ„ใฆ้ž0ใฎๅ€คใŒๆฑ‚ใ‚ใ‚‹)ใ€‚

ABC 402-F

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅŠๅˆ†ๅ…จๅˆ—ๆŒ™ใ ใจใฏๅˆ†ใ‹ใฃใŸใŒใ€TLEใซ่‹ฆใ—ใ‚“ใ ใ€‚ใŠใใ‚‰ใๆƒณๅฎš่งฃๆณ•ใงใฏใชใ„ใŒใ€ๆ•ฐๆ™‚้–“ใ‹ใ‘ใฆใ”ใ‚ŠๆŠผใ—ใŸใ€‚Eๅ•้กŒใŒ่งฃใ‘ใชใใฆFๅ•้กŒใ‚’่งฃใ‘ใ‚‹ใฎใฏใชใœใ ใ‚ใ†ใ€‚

ๅบงๆจ™ใ‚’0-based indexingใจใ™ใ‚‹ใ€‚ๅฏพ่ง’็ทš $|X+Y| = N-1$ ใซใ‚ใ‚‹ $N$ ใƒžใ‚น $(0,N-1)...(N-1,0)$ใซใคใ„ใฆใ€ๅ–ใ‚Šใ†ใ‚‹ $modM$ ใฎๅ€คใ‚’ๅ…จๅˆ—ๆŒ™ใ™ใ‚Œใฐใ‚ˆใ„ใ€‚ไธ€็•ช็ตŒ่ทฏใŒๅคšใ„ $N-2 \choose (N-2)/2$ ใŒ ${18 \choose 9} = 48620$ ใชใฎใงใ€ๅ…จ็ตŒ่ทฏใ‚’ๆŽข็ดขใ™ใ‚Œใฐๅ…จๅˆ—ๆŒ™ใŒ้–“ใซๅˆใ„ใใ†ใงใ‚ใ‚‹ใ€‚ใจใ„ใ†ใ‚ˆใ‚ŠๅพŒใง็ŸฅใฃใŸใŒใ€ไบŒ้ …ไฟ‚ๆ•ฐใฎๅ’Œ $\sum_{i=0}^N {N \choose i} = 2^i$ ใงใ‚ใ‚‹ใ€‚ $(1+1)^n$ ใฎไฟ‚ๆ•ฐใ‹ใ‚‰ๅฐŽๅ‡บใงใใ‚‹ใ€‚

$mod M$ ใฏใ„ใคใ‚‚้€šใ‚Šๆฑ‚ใ‚ใ‚‹ใ€‚ๅทฆไธŠใ‹ใ‚‰ๆกใ‚’ๆœซๅฐพใซๅข—ใ‚„ใ™ใจใใฏ $10accum + digit$ ใ€ๅณไธŠใ‹ใ‚‰ๆกใ‚’ๅ…ˆ้ ญใซๅข—ใ‚„ใ™ใจใใฏ $digit 10^{width} + accum$ ใง็ดฏ็ฉใ™ใ‚‹( $width$ ใฏๅณไธ‹ใ‹ใ‚‰ใฎใƒžใƒณใƒใƒƒใ‚ฟใƒณ่ท้›ข)ใ€‚ใ“ใฎใจใ็ตŒ่ทฏไธญใง $modM$ ๆผ”็ฎ—ใ‚’ๅ–ใ‚‹ใจTLEใ™ใ‚‹ใ€‚้ซ˜ใ€…10้€ฒๆ•ฐ9ๆกใชใฎใงใ€ $mod M$ ใ‚’ๅ–ใ‚‹ใฎใฏๆœ€ๅพŒใซใพใจใ‚ใฆใงๆง‹ใ‚ใชใ„ใ€‚

ใ‚ใ‚‹ๅฏพ่ง’็ทšใฎใƒžใ‚นใซใคใ„ใฆใ€ๅทฆไธŠใ‹ใ‚‰ใฎ็ดฏ็ฉๅ€คใŒ $a \in 0..(M-1)$ ใ‚’ๅ–ใ‚‹ใจใ™ใ‚‹ใ€‚ ๅณไธ‹ใ‹ใ‚‰ใฎ็ดฏ็ฉๅ€ค $S$ ใซใคใ„ใฆใ€ $(a + max(S)) mod M$ ใฏๅธธใซๅ€™่ฃœใซใชใ‚‹ใ€‚ $M - a$ ๆœชๆบ€ใงๆœ€ๅคงใฎๅ€ค $b \in S$ ใŒใ‚ใ‚Œใฐ $a + b$ ใŒ็ญ”ใˆใฎๅ€™่ฃœใซใชใ‚‹ใ€‚ใ“ใ‚ŒใฏไบŒๅˆ†ๆŽข็ดขใงๆฑ‚ใพใ‚‹ใ€‚ใ‚ปใƒณใƒใƒใƒซใจใ—ใฆ $min(S) + M$ ใ‚’ $S$ ใซๅŠ ใˆใฆใŠใใจๅ‡ฆ็†ใ—ใ‚„ใ™ใ„ใ€‚

ใจใซใ‹ใ $mod M$ ใ‚’ใงใใ‚‹ใ ใ‘ๆธ›ใ‚‰ใ™ใจTLEใ‚’ๅ›ž้ฟใงใใ‚‹ใ€‚ใ ใ„ใŸใ„ๅ…ฌๅผ่งฃ่ชฌ้€šใ‚Šใ ใŒใ€ใชใœTLEใ—ใŸใฎใ ใ‚ใ†ใ€‚

ABC 403-A

ใƒใƒใƒฃใงใฏใชใใ€ไธ€ๅ•ใšใค่งฃใ„ใŸใ€‚่งฃใใฎใŒ้…ใ„ใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๆทปใˆๅญ—ใ‚’2ใšใคๅข—ใ‚„ใ™ใ€‚

ABC 403-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

? ใ‚’็ฝฎใๆ›ใˆใ‚‹ๆ–นๆณ•ใฏๅฟ…ใš $26^4$ ้€šใ‚Šใชใฎใงใ€ $T$ ใ‚’็ฝฎใๆ›ใˆใฆ $S$ ใซใ—ใ€ $S$ ใŒ $U$ ใ‚’ๅซใ‚€ใ‹ใฉใ†ใ‹่ชฟในใ‚‹ใ€‚

ABC 403-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$PS[X]$ ใ‚’ใƒฆใƒผใ‚ถ $X$ ใŒ้–ฒ่ฆงใงใใ‚‹ใƒšใƒผใ‚ธใ€ $GS[X]$ ใ‚’ใƒฆใƒผใ‚ถ $X$ ใŒใ™ในใฆใฎใƒšใƒผใ‚ธใ‚’้–ฒ่ฆงใงใใ‚‹ใ‹ใฉใ†ใ‹ใจใ™ใ‚‹ใ€‚ $PS[X]$ ใฎๅˆๆœŸๅ€คใฏ็ฉบ้›†ๅˆใ€ $GS[X]$ ใฎๅˆๆœŸๅ€คใฏ $False$ ใงใ‚ใ‚‹ใ€‚

  • ใ‚ฏใ‚จใƒช1ใฏ $PS[X]$ ใซ $Y$ ใ‚’่ฟฝๅŠ ใ™ใ‚‹
  • ใ‚ฏใ‚จใƒช2ใฏ $GS[X]$ ใ‚’ $True$ ใซใ™ใ‚‹
  • ใ‚ฏใ‚จใƒช3ใซใคใ„ใฆ $Y \in PS[X] \lor GS[X]$ ใชใ‚‰ Yes ใ€ใใ†ใงใชใ‘ใ‚Œใฐ No ใงใ‚ใ‚‹ใ€‚

ABC 403-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

่‰ฒใ€…่ฆ‹่ฝใจใ—ใŒๅคšใ„ใ€‚

$A$ ใซ $a$ ใŒ็พใ‚Œใ‚‹ๅ›žๆ•ฐใ‚’ $C[a]$ ใจใ™ใ‚‹ใ€‚ $|C|$ ใ‚’ $A$ ใซ็พใ‚Œใ‚‹ๆ•ฐๅ€คใฎ้‡่ค‡็„กใ—็จฎ้กžใจใ™ใ‚‹ใ€‚

$D = 0$ ใฎใจใใฏใ€็ญ”ใˆใฏ $N - |C|$ ใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ๅฟ˜ใ‚Œใ‚‹ใจTLEใ™ใ‚‹ใ€‚

$D > 0$ ใฎใจใใ‚’่€ƒใˆใ‚‹ใ€‚ $a$ ใ‚’็ญ‰ๅทฎๆ•ฐๅˆ— $a, a+D, a+2D, ...$ ใซๅˆ†่งฃใ™ใ‚‹ใ€‚ใ“ใฎๅˆ†่งฃใฏ $O(N)$ ใงใงใใ‚‹ใ€‚ๅˆ†่งฃใ—ใŸ็ญ‰ๅทฎๆ•ฐๅˆ— $P$ ใซใคใ„ใฆใ€็ญ‰ๅทฎๆ•ฐๅˆ—ใฎใใ‚Œใžใ‚Œใฎๆˆๅˆ† $a$ ใŒ $A$ ใซ็พใ‚Œใ‚‹ๅ›žๆ•ฐ $T = C[a] : a \in P$ ใ‚’่€ƒใˆใ‚‹ใ€‚

$\sum T$ ใŒๆœ€ๅคงใซใชใ‚‹ใ‚ˆใ†ใซ $T$ ใ‚’ไธŠๆ‰‹ใ้–“ๅผ•ใใ€‚ใ“ใ‚Œใฏๅ‹•็š„่จˆ็”ปๆณ•ใงใงใใ‚‹ใ€‚ $T$ ใฎ $i \in |T|$ ็•ช็›ฎใฎ่ฆ็ด ใ‚’้–“ๅผ•ใ„ใŸๆ™‚ใฎ $T[1..i]$ ใฎ่ฆ็ด ๆ•ฐใ‚’ $DP[i][0]$ , ้–“ๅผ•ใ‹ใชใ„ใจใใฎ่ฆ็ด ๆ•ฐใ‚’ $DP[i][1]$ ใจใ™ใ‚‹ใ€‚ไบŒๅ›ž้€ฃ็ถšใง้–“ๅผ•ใใ“ใจใฏใงใใฆใ‚‚ใ€ไบŒๅ›ž้€ฃ็ถšใง้–“ๅผ•ใ‹ใชใ„ใฎใฏ่จฑๅฎนใ•ใ‚Œใชใ„ใฎใงใ€

  • $DP[0][0] = 0$, $DP[0][1] = T[1]$
  • $DP[i+1][0] = max(DP[i][0], DP[i+1][1])$
  • $DP[i+1][1] = DP[i][0] + T[i]$

ใงๆ›ดๆ–ฐใ™ใ‚‹ใ€‚ใ“ใฎใจใ $(\sum T) - max(DP[|T|][])$ ใŒใ€ใ‚ใ‚‹็ญ‰ๅทฎๆ•ฐๅˆ—ใซใคใ„ใฆๆฑ‚ใ‚ใ‚‹็ญ”ใˆใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ใ™ในใฆใฎ็ญ‰ๅทฎๆ•ฐๅˆ—ใซใคใ„ใฆๆฑ‚ใ‚ใŸๅ’ŒใŒๆœ€็ต‚็š„ใช็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ABC 403-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใƒญใƒผใƒชใƒณใ‚ฐใƒใƒƒใ‚ทใƒฅใงใพใจใ‚ใชใŒใ‚‰้›†ๅˆใ‚’็ฎก็†ใจๅˆ†ใ‹ใฃใŸใŒๆ‰‹ใ“ใšใฃใŸใ€‚

ๆ–‡ๅญ—ๅˆ— $T$ ใฎๅ…ˆ้ ญ $k=1..|T|$ ๆ–‡ๅญ—ใซใคใ„ใฆใฎใƒญใƒผใƒชใƒณใ‚ฐใƒใƒƒใ‚ทใƒฅใ‚’ $H(T,k)$ ใจใ™ใ‚‹ใ€‚

  • $S_1$ ใซๅซใพใ‚Œใ‚‹ๆ–‡ๅญ—ๅˆ— $T$ ใฎ $H(T,|T|)$ ใฎ้›†ๅˆใ‚’ $X$ ใจใ™ใ‚‹ใ€‚ $S_1$ ไธธใ”ใจใฎใƒใƒƒใ‚ทใƒฅใงใ‚ใ‚‹ใ€‚
  • $S_2$ ใซๅซใพใ‚Œใ‚‹ $j \in 1..|S_2|$ ็•ช็›ฎใฎๆ–‡ๅญ—ๅˆ— $T = S_{2,j}$ ใซๆณจ็›ฎใ™ใ‚‹ใ€‚ๅ€คใŒ $h = H(T,1..|T|)$ ใจใชใ‚‹ใ‚ˆใ†ใชๆ–‡ๅญ—ๅˆ—ใฎๆทปใˆๅญ—ใฎ้›†ๅˆใ‚’ $Y[h]$ ใจใ™ใ‚‹ใ€‚ $S_2$ ใŒๆŒใคๆŽฅ้ ญ่พžใฎๅ€™่ฃœใงใ‚ใ‚‹ใ€‚
  • $S_2$ ใฎ $j$ ็•ช็›ฎใฎๆ–‡ๅญ—ๅˆ—ใŒใ€ $S_1$ ใฎใ„ใšใ‚Œใ‹ใฎ่ฆ็ด ใŒๆŽฅ้ ญ่พžใซใชใ‚‹ใ‹ใฉใ†ใ‹ใ‚’ $U[j]$ ใจใ—ใฆๆŒใคใ€‚ๆŽฅ้ ญ่พžใชใ‚‰1ใ€ๆŽฅ้ ญ่พžใงใชใ‘ใ‚Œใฐ0ใงใ‚ใ‚‹ใ€‚ $U$ ใฏ0-based indexingใจใ—ใฆใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใจใ—ใฆๆŒใคใ€‚

ใ‚ฏใ‚จใƒช $T_i = 2$ ใŒๆฅใŸๆ™‚็‚นใงใ€ $|S_2| - \sum U$ ใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚ใ‚ฏใ‚จใƒช $X,Y,U$ ใ‚’ๆ›ดๆ–ฐใ™ใ‚‹ๆ–นๆณ•ใ‚’ๅฎšใ‚ใ‚‹ใ€‚

ใ‚ฏใ‚จใƒช $T_i = 1$ ใ‚’ใ“ใ†ๅ‡ฆ็†ใ™ใ‚‹ใ€‚ $h = H(S, |S|)$ ใจใ—ใฆใ€ $j \in Y[h]$ ใซใคใ„ใฆใ€ $U[j] = 1$ ใจใ™ใ‚‹ใ€‚ใใฎๅพŒใฎ $S$ ใซ $h$ ใ‚’่ฟฝๅŠ ใ—ใ€ $Y[h]$ ใ‚’็ฉบใซใ™ใ‚‹ใ€‚็ฉบใซใ—ๅฟ˜ใ‚Œใ‚‹ใจTLEใ™ใ‚‹ใ€‚

ใ‚ฏใ‚จใƒช $T_i = 2$ ใ‚’ใ“ใ†ๅ‡ฆ็†ใ™ใ‚‹ใ€‚ใ‚ฏใ‚จใƒชใŒๆฅใ‚‹ๅ‰ใฎ $|S_2|$ ใ‚’ $L$ ใจใ™ใ‚‹ใ€‚

  • $U[L] = 1$ ใชใ‚‰ๆ—ขใซ $S_1$ ใฎๆŽฅ้ ญ่พžใชใฎใงไฝ•ใ‚‚ใ—ใชใ„
  • $U[L] = 0$ ใ‹ใค $h = H(S, 1..|S|)$ ใจใ—ใฆใ€ใ„ใšใ‚Œใ‹ใฎ $h$ ใŒ $X$ ใซๅซใพใ‚Œใ‚‹ใชใ‚‰ $U[L] = 1$ ใจใ™ใ‚‹ใ€‚ๆ—ขใซ $T$ ใฏ $S_1$ ใฎๆŽฅ้ ญ่พžใงใ‚ใ‚‹ใ€‚
  • $U[L] = 0$ ใ‹ใค $h = H(S, 1..|S|)$ ใจใ—ใฆใ€ใ„ใšใ‚Œใฎ $h$ ใ‚‚ $X$ ใซๅซใพใชใ„ใชใ‚‰ $h$ ใใ‚Œใžใ‚Œใซใคใ„ใฆ $Y[h]$ ใซ $L$ ใ‚’ ่ฟฝๅŠ ใ™ใ‚‹ใ€‚ไปŠใฏ $T$ ใฏ $S_1$ ใฎๆŽฅ้ ญ่พžใงใฏใชใ„ใŒใ€ๅฐ†ๆฅใฏๆŽฅ้ ญ่พžใซใ•ใ‚Œใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใ€ใจใ„ใ†ไบˆ็ด„ใงใ‚ใ‚‹ใ€‚
  • ไธŠ่จ˜ใฎใ„ใšใ‚Œใฎๅ ดๅˆใ‚‚ใ€ $L$ ใซ1่ถณใ™

ABC 403-F

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$O(N^2)$ ใŒ่จฑใ•ใ‚Œใ‚‹ใฎใง็ทๅฝ“ใŸใ‚Šใ™ใ‚‹ใ€‚ $N$ ใ‚’ๅผใซใ—ใŸๆ™‚ใฎๆผ”็ฎ—ๅญใฎๆ•ฐใฏ $O(log(N))$ ใงใ‚ใ‚‹(ๅŒใ˜ๆ•ฐๅญ—ใ‚’10ๅ›ž็จ‹ๅบฆใ—ใ‹่ถณใ•ใชใ„ใฎใง)ใ€‚

$N = A + B$ ใจ $N = A \times B$ ใซใคใ„ใฆใƒกใƒขๅŒ–ๅ†ๅธฐใ—ใชใŒใ‚‰็ทๅฝ“ใŸใ‚Šใ—ใฆใ€ๆœ€ใ‚‚ๆ–‡ๅญ—ๅˆ—้•ทใŒ็Ÿญใ„ใ‚‚ใฎใ‚’่ฟ”ใ™ใ€‚ 1,11,111,1111 ใ‚’ใใฎใพใพๆ–‡ๅญ—ๅˆ—ใซใ—ใŸใ‚‚ใฎใ‚’ใ‚ใ‚‰ใ‹ใ˜ใ‚็”จๆ„ใ—ใฆใŠใใ€‚ $A,B$ ใฎๆ–‡ๅญ—ๅˆ—่กจ็พใ‚’ใใ‚Œใžใ‚Œใ‚’ๆ‹ฌๅผงใงๅ›ฒใ‚€ใ‹ใฉใ†ใ‹ๅˆคๅฎšใ™ใ‚‹ใ€‚

$A op B$ ใฎ $B$ ใซๆ‹ฌๅผงใŒ่ฆใ‚‹ใ‹ใฉใ†ใ‹ใฏใ€ $A$ ใฎๅ…ˆ้ ญใ‹ใ‚‰ไปฅไธ‹ใฎ้€šใ‚Š่ชฟในใ‚‹ใ€‚ $B$ ใ‚‚ๅŒๆง˜ใงใ‚ใ‚‹ใ€‚

  • () ๅ†…ใฏ่ชฟในใชใ„ใ€‚ใ“ใ‚Œใฏๅ…ฅใ‚Œๅญใฎๆทฑใ•ใŒ0ไปฅๅค–ใ‹ใฉใ†ใ‹ใงๅˆ†ใ‹ใ‚‹ใ€‚ ( ใง1ๆทฑใใ€ ) ใง1ๆต…ใใ™ใ‚‹ใ€‚
  • $op = \times$ ใง $+$ ใŒๅ‡บใŸใ‚‰ใ€ $B$ ใซๆ‹ฌๅผงใŒ่ฆใ‚‹ใ€‚ $op = +$ ใฏ่ชฟในใชใใฆใ‚ˆใ„ใ€‚

ABC 404-A

ใƒใƒใƒฃใงใฏใชใใ€ไธ€ๅ•ใšใค่งฃใ„ใŸใ€‚Eๅ•้กŒใŒใ‚ใ‹ใ‚‰ใชใ„ใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅ‡บ็พใ—ใŸๆ–‡ๅญ—ใ‚’ๆ•ฐใˆใ€ๅ‡บ็พใ™ใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใชใ„ๆ–‡ๅญ— a-z ใใ‚Œใžใ‚Œใซใคใ„ใฆๅ‡บ็พใ—ใชใ‹ใฃใŸใ‚‚ใฎใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

ABC 404-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

่‰ฒใ‚’ๅค‰ใˆใฆใ‹ใ‚‰ๅ›ž่ปขใ™ใ‚‹ใ“ใจใจใ€ๅ›ž่ปขใ—ใฆใ‹ใ‚‰่‰ฒใ‚’ๅค‰ใˆใ‚‹ใ“ใจใฏ็ญ‰ไพกใงใ‚ใ‚‹(ๅ›ž่ปขๅพŒใฎๅ ดๆ‰€ใฎ่‰ฒใ‚’ๅค‰ใˆใ‚Œใฐใ„ใ„ใฎใง)ใ€‚ใ‚ˆใฃใฆ $r = 0..3$ ๅ›ž่ปขใ—ใŸๆ™‚ใฎๆ“ไฝœๅ›žๆ•ฐใฏใ€ $S$ ใ‚’ๅ›ž่ปขๅพŒใซ $S,T$ ใง่‰ฒใŒ้•ใ†ใƒžใ‚นใŒ $C_i$ ๅ€‹ใจใ—ใฆใ€ $i + C_i$ ใงใ‚ใ‚‹ใ€‚ใ“ใฎๆœ€ๅฐๅ€คใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚

ABC 404-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใ‚ฐใƒฉใƒ•ใซใ‚ตใ‚คใ‚ฏใƒซใŒใ‚ใ‚‹ใ‹ใ€ใจๅ•้กŒใ‚’่ชญใฟ้•ใˆใฆๆ™‚้–“ใ‚’ๆบถใ‹ใ—ใŸใ€‚ใ„ใฃใŸใ„ไฝ•ใ‚’ใ—ใฆใ„ใ‚‹ใฎใ ใ‚ใ†ใ€‚

่พบใฎๆ•ฐใŒ $N$ ใงใ€้ ‚็‚นๆ•ฐ $N$ ใฎๅ”ฏไธ€ใฎ้€ฃ็ตๆˆๅˆ†ใ‚’ๆŒใกใ€ใ™ในใฆใฎ้ ‚็‚นใฎๆฌกๆ•ฐใŒ2ใชใ‚‰ Yes ใ€ใใ†ใงใชใ‘ใ‚Œใฐ No ใงใ‚ใ‚‹ใ€‚ๆฌกๆ•ฐใ‚’็„ก่ฆ–ใ™ใ‚‹ใจใ€็ตใณ็›ฎใŒใ‚ใ‚‹ใ‚ฐใƒฉใƒ•ใ‚’ใ‚ตใ‚คใ‚ฏใƒซใ‚ฐใƒฉใƒ•ใ‚’่ชค่ชใ™ใ‚‹ใ€‚

ABC 404-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

STLใฎๆŸ”่ปŸๆ€งใซๅŠฉใ‘ใ‚‰ใ‚ŒใŸใ€‚

std::map ใฏ std::vector<int> ใ‚’ใ‚ญใƒผใซๆŒใคใ“ใจใŒใงใใ‚‹ใ€‚ใ“ใ‚Œใ‚’ๅˆฉ็”จใ—ใฆDPใ‚’ไฝœใ‚‹ใ€‚

$DP[V,C]$ ใฏใ€ๅ‹•็‰ฉ $1..M$ ใ‚’่ฆ‹ใŸๅ›žๆ•ฐใฎใƒ™ใ‚ฏใƒˆใƒซ $V[1..M]$ ใฎใจใใซใ€ๅ‹•็‰ฉๅœ’ใฎๆœ€ไฝŽๅ…ฅๅ ดๆ–™ $C$ ใจใ„ใ†้€ฃๆƒณ้…ๅˆ—ใจใ™ใ‚‹ใ€‚ใŸใ ใ— $V \in 0..2$ ใจใ—ใ€2ๅ›žไปฅไธŠ่ฆ‹ใŸใ‚‰2ๅ›žใจๅŒใ˜ใจใฟใชใ™ใ€‚ๅˆๆœŸๅ€คใฏ $DP[0] = 0$ ใ€ใใ‚Œไปฅๅค–ใฏ $DP[] = \infty$ ใจใ™ใ‚‹ใŒใ€ $DP[] = \infty$ ใชใ‚‰ $DP$ ใซ่ผ‰ใ›ใชใ„ใ€‚

ๅŒใ˜ๅ‹•็‰ฉๅœ’ใ‚’ไบŒๅบฆใพใงใฏ่ฆ‹ใ‚‹(ไธ‰ๅบฆ่ฆ‹ใ‚‹ๅฟ…่ฆใฏใชใ„)ใฎใงใ€ๅ‹•็‰ฉๅœ’ใ‚’่ฆ‹ใ‚‹้ †็•ชใ‚’ $P[1..2N] = 1..N, 1..N$ ใจใ™ใ‚‹ใ€‚ $DP[0,0]$ ใฏๅ‹•็‰ฉๅœ’ใ‚’ๅ…จใ่ฆ‹ใฆใ„ใชใ‘ใ‚Œใฐใ‚ณใ‚นใƒˆ0ใจใ„ใ†ๆ„ๅ‘ณใงใ‚ใ‚‹ใ€‚

ๅ‹•็‰ฉๅœ’ $k=P[i]$ ใงใ‚ณใ‚นใƒˆ $C_i$ ใงๅ‹•็‰ฉ $U$ ใ‚’่ฆ‹ใ‚‹ใ€‚ $T$ ใฏใƒ™ใ‚ฏใƒˆใƒซใงใ€ๅ‹•็‰ฉๅœ’ $k$ ๅ‹•็‰ฉ $j$ ใ‚’่ฆ‹ใ‚‰ใ‚Œใ‚‹ใจใใซ $U[j] = 1$ ่ฆ‹ใ‚‰ใ‚Œใชใ„ใจใใฏ $U[j] = 0$ ใงใ‚ใ‚‹ใ€‚DPใฎๆ›ดๆ–ฐๅผใฏไปฅไธ‹ใฎ้€šใ‚Šใงใ‚ใ‚‹ใ€‚

  • $S$ ใฏใ€ๅ€คใŒ $\infty$ ใงใชใ„ $DP$ ใฎใ™ในใฆใฎ่ฆ็ด ใจใ™ใ‚‹
  • $S+T = min(2, S[j] + T[j])$ ใจใ™ใ‚‹
  • $DP[S+T] = min(DP[S+T], DP[S] + C_i)$

็ญ”ใˆใฏใ€ๅ‹•็‰ฉใ‚’ไบŒๅ›ž่ฆ‹ใŸใจใ„ใ†ใ‚ญใƒผใซๅฏพใ™ใ‚‹ๅ€ค $V = (2,2,...,2) , DP[V]$ ใงใ‚ใ‚‹ใ€‚

$DP$ ใฎ่ฆ็ด ใฏ้ซ˜ใ€… $1+2^{2N}$ ๅ€‹ใชใฎใงใ€ๅˆถ็ด„ใ‹ใ‚‰ 1048577ๅ€‹ใงใ‚ใ‚‹ใ€‚่จˆ็ฎ—้‡ใฏ $NN4^{N}$ ใ ใŒ้–“ใซๅˆใฃใฆใ—ใพใฃใŸ(60 ms)ใ€‚

ๅฎŸใฏๅ‹•็‰ฉๅœ’ใ‚’ $3^N$ ใฎๅ…จๆŽข็ดขใ™ใ‚Œใฐใ‚ˆใ‹ใฃใŸใ€‚

ABC 404-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ไฝ•ๆ™‚้–“่€ƒใˆใฆใ‚‚ใ‚ใ‹ใ‚‰ใชใ„ใ€‚MSTใ‚’ไฝœใ‚‹ๅ•้กŒใ ใจๆ€ใฃใŸใ‚‰ๅ…จใ้•ใฃใŸใ€‚ๅ…ฌๅผ่งฃ่ชฌใ‚’ใปใผใใฎใพใพๅฎŸ่ฃ…ใ—ใฆ่งฃ่ชฌACใ—ใŸใ€‚ๅพŒใ‚ใ‹ใ‚‰่€ƒใˆใ‚‹ๅ…ธๅž‹ใงใ‚ใ‚‹ใ€‚

MSTใ‚’ไฝœใ‚Œใฐใ‚ˆใ„ใฎใ ใŒใ€ๅˆๆตใ™ใ‚‹้ ‚็‚นใ‚’ไปปๆ„ใ ใจๆ€ใฃใŸใฎใง่จˆ็ฎ—้‡ใŒๅคšใ™ใŽใŸใ€‚้ ‚็‚น $i$ ใซ้ ‚็‚น $i+1$ ไปฅ้™ใ‚’ใ™ในใฆๅˆๆตใ•ใ›ใ‚‹ใจๅ…ฌๅผ่งฃ่ชฌใจๅŒใ˜่€ƒใˆๆ–นใซใชใ‚‹ใ€‚

ABC 405-A

ใƒใƒใƒฃใงใฏใชใใ€ไธ€ๅ•ใšใค่งฃใ„ใŸใ€‚็™บๆƒณใฏๆ—ฉใ„ใŒๅฎŸ่ฃ…ใŒ้…ใ„ใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

้กŒๆ„้€šใ‚ŠๅฎŸ่ฃ…ใ™ใ‚‹ใ€‚

ABC 405-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$i=1..M$ ใŒ $A$ ใซไฝ•ๅ€‹ๅซใพใ‚Œใ‚‹ใ‹็คบใ™้€ฃๆƒณ้…ๅˆ— $T[i]$ ใ‚’ๆŒใคใ€‚

ๅ€คใŒ้ž0ใฎ $T$ ใฎใ‚จใƒณใƒˆใƒชๆ•ฐใŒ $M$ ๆœชๆบ€ใซใชใ‚‹ใพใงใ€ $A$ ใฎๆœซๅฐพใฎ่ฆ็ด  $A_j$ ใ‚’ $T[A_j]$ ใ‹ใ‚‰1ๆธ›ใ‚‰ใ™ใ€‚ $T[A_j]=0$ ใซใชใฃใŸใ‚‰ $T$ ใ‹ใ‚‰ใ‚จใƒณใƒˆใƒช $A_j$ใ‚’ๅ‰Š้™คใ™ใ‚‹ใ€‚ $A$ ใ‚’ๅ‰Š้™คใ—ใŸๅ›žๆ•ฐใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ABC 405-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

่ฆ็ด  $1..i$ ใพใงใฎ็ดฏ็ฉๅ’Œ $C_i = \sum_{j=1}^{i}$ ใ‚’ใ‚ใ‚‰ใ‹ใ˜ใ‚ๆฑ‚ใ‚ใ‚‹ใ€‚็ญ”ใˆใฏ $\sum_{i=1}^{N-1} A_i(C_N - C_i)$ ใงใ‚ใ‚‹ใ€‚

ABC 405-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅคšๅœฐ็‚นBFSใชใฎใ ใŒใ€ๅฎŸ่ฃ…ๆ–นๆณ•ใ‚’ๅฟ˜ใ‚ŒใฆTLEใ—ใŸใ€‚

่ท้›ข $D$ ใฎ้šฃใ€่ท้›ข $D+1$ ใฎๅœฐ็‚นใ‚’ใ‚ญใƒฅใƒผใซ็ฉใ‚€ใจใใ€ใ‚ญใƒฅใƒผใฎๅ…ˆ้ ญ่ท้›ขใŒ $L$ ใชใ‚‰ใ€ $D + 1 &lt; L$ ใชใ‚‰ใ‚ญใƒฅใƒผใฎๅ…ˆ้ ญใซ็ฉใฟใ€ใใ†ใงใชใ„ใชใ‚‰ใ‚ญใƒฅใƒผใฎๆœซๅฐพใซ็ฉใ‚€ใ€‚ $D + 1 \leq L$ ใซใ™ใ‚‹ใจTLEใ™ใ‚‹ใ€‚

ใ™ในใฆใฎๅ‡บๅฃใ‚’ใ‚ญใƒฅใƒผใซ็ฉใ‚“ใงBFSใ—ใ€ใใ‚Œใžใ‚ŒใฎๅบŠใซใคใ„ใฆใ‚ใ‚‹ๅ‡บๅฃใพใงใฎๆœ€็Ÿญ่ท้›ขใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ใใฎใ‚ใจใใ‚Œใžใ‚ŒใฎๅบŠใซใคใ„ใฆใ€่‡ชๅˆ†ใ‚ˆใ‚Šๅ‡บๅฃใพใงใฎ่ท้›ขใŒ็Ÿญใใชใ‚‹ๆ–น่ง’ใ‚’่จ˜ๅ…ฅใ™ใ‚‹ใจ็ญ”ใˆใซใชใ‚‹ใ€‚

ABC 405-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

็ต„ใฟๅˆใ‚ใ›ใ‚’้ซ˜้€Ÿใซๅ‰่จˆ็ฎ—ใ™ใ‚Œใฐใ‚ˆใ„ใŒใ€ๅฎŸ่ฃ…ๆ–นๆณ•ใ‚’ๅฟ˜ใ‚Œใฆๆ™‚้–“ใŒๆŽ›ใ‹ใฃใŸใ€‚

ไธฆใณๆ–นใ‚’ๅˆ—ๆŒ™ใ™ใ‚‹ใฎใซใ€ๆœ€ใ‚‚ๅทฆใซใ‚ใ‚‹ใƒ–ใƒ‰ใ‚ฆใซๆณจ็›ฎใ™ใ‚‹ใ€‚ๆœ€ใ‚‚ๅทฆใซใ‚ใ‚‹ใƒ–ใƒ‰ใ‚ฆใ‚ˆใ‚Šๅทฆใซใ€ใƒใƒŠใƒŠใŒ $i = 0..C$ ๅ€‹ใ‚ใ‚Šใ€ๆœ€ใ‚‚ๅทฆใซใ‚ใ‚‹ใƒ–ใƒ‰ใ‚ฆใ‚ˆใ‚Šๅณใซใ€ใƒใƒŠใƒŠใŒ $C - i$ ๅ€‹ใ‚ใ‚‹ใจใ™ใ‚‹ใ€‚ใ“ใฎใ‚ˆใ†ใช $i$ ใซใคใ„ใฆใ€ๅ–ใ‚Šใ†ใ‚‹็ต„ใฟๅˆใ‚ใ›ใฎๆ•ฐใ‚’่ถณใ™ใจ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ใ“ใฎๆ–นๆณ•ใง้กŒๆ„ใฎใ†ใกใ€ไปฅไธ‹ใฎไบŒๅˆถ็ด„ใ‚’ๅฟ…ใšๆบ€ใŸใ™ใ€‚ใ“ใ‚Œใฏ $D - 1$ ๅ€‹ใฎใƒ–ใƒ‰ใ‚ฆใจ $C - 1$ ๅ€‹ใฎใƒใƒŠใƒŠใ‚’ไธฆในใ‚‹ๆ–นๆณ•ใชใฎใง ${{D - 1 + C - i} \choose {C - i}}$ ้€šใ‚Šใงใ‚ใ‚‹ใ€‚

  • ใƒชใƒณใ‚ดใฏใ™ในใฆใƒ–ใƒ‰ใ‚ฆใ‚ˆใ‚Šใ‚‚ๅทฆๅดใซไธฆในใ‚‹
  • ใ‚ชใƒฌใƒณใ‚ธใฏใ™ในใฆใƒ–ใƒ‰ใ‚ฆใ‚ˆใ‚Šใ‚‚ๅทฆๅดใซไธฆในใ‚‹

ๆœ€ใ‚‚ๅทฆใซใ‚ใ‚‹ใƒ–ใƒ‰ใ‚ฆใ‚ˆใ‚Šๅทฆใซใคใ„ใฆใ€ใƒชใƒณใ‚ดใ‚’ๅทฆใซใ€ใƒใƒŠใƒŠใ‚’ๅณใซๅฏ„ใ›ใ€้–“ใซใ‚ชใƒฌใƒณใ‚ธใ‚’ๆŒŸใ‚€ใ€‚ใใ†ใ™ใ‚‹ใจๆฎ‹ใ‚Šใฎๅˆถ็ด„ใงใ‚ใ‚‹ใ€ใƒชใƒณใ‚ดใฏใ™ในใฆใƒใƒŠใƒŠใ‚ˆใ‚Šใ‚‚ๅทฆๅดใซไธฆในใ‚‹ใ€ใ‚’ๆบ€ใŸใ™ใ€‚ใ“ใ‚Œใฏ ${{A + B + i} \choose i}$ ้€šใ‚Šใงใ‚ใ‚‹ใ€‚

ไธŠ่จ˜ใ‚’ๅ‰่จˆ็ฎ—ใ™ใ‚‹ใ€‚ ${D - 1 + C - i} \choose {C - i}$ ใซใคใ„ใฆใ€ $C - i$ ใจ $i$ ใ‚’ๅ…ฅใ‚Œๆ›ฟใˆใฆใ€ ${D - 1 + i} \choose {i}$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ใ“ใ‚Œใฏไปฅไธ‹ใฎ้€šใ‚Šใ€ $i$ ใซใคใ„ใฆ้€ๆฌก็š„ใซๆฑ‚ใพใ‚‹ใ€‚

  • ${{D - 1} \choose {0}} = 1$
  • ${{D - 1 + i + 1} \choose {i + 1}} = {{D - 1 + i} \choose {i}} \times (D - 1 + i + 1) / (i + 1)$

${{A + B + i} \choose i}$ ใ‚‚ $i$ ใซใคใ„ใฆ้€ๆฌก็š„ใซๆฑ‚ใพใ‚‹ใ€‚

  • ${{A + B} \choose 0} = 1$
  • ${{A + B + i + 1} \choose {i + 1}} = {{A + B + i} \choose {i}} \times (A + B + i + 1) / (i + 1)$

ใ“ใฎๆ–นๆณ•ใฏๅ…ฌๅผ่งฃ่ชฌ1ใจๅŒใ˜ใงใ‚ใ‚‹ใ€‚

ABC 405-F

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅฎŸ่ฃ…ๆ–นๆณ•ใŒๅ…จใๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸใ€‚

ๅ…ฌๅผ่งฃ่ชฌใŒไฝ•็จฎ้กžใ‹ใ‚ใ‚‹ใŒใ€็ทšๅˆ† $C,D$ ใซ้ฃ›ใณ่พผใ‚€ไป–ใฎ็ทšๅˆ† $A,B$ ใ‚’ๆ•ฐใˆไธŠใ’ใ‚‹ๆ–นๆณ•ใชใ‚‰ๅˆ†ใ‹ใ‚‹ใ€‚ใ“ใฎๆ–นๆณ•ใฏๅ…ฌๅผ่งฃ่ชฌ2ใซใ‚ใ‚Šใ€ใใฎ้€šใ‚ŠๅฎŸ่ฃ…ใ—ใŸใ€‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใชใฎใ ใ‚ใ†ใจใฏๆƒณๅƒใ—ใŸใŒใ€ใ‚ฏใ‚จใƒชไธฆใณๆ›ฟใˆใŒ่ฆใ‚‹ใ“ใจใŒๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸใ€‚

ABC 406-A

ใƒใƒใƒฃใงใฏใชใใ€ไธ€ๅ•ใšใค่งฃใ„ใŸใ€‚็›ธๅค‰ใ‚ใ‚‰ใšใ€ไป–ใฎๆ–นใฎ้›ฃๆ˜“ๅบฆใจ็งใฎ้›ฃๆ˜“ๅบฆใŒ้€†่ปขใ™ใ‚‹ใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$C &lt; A \lor (C = A \land D &lt; B)$ ใชใ‚‰ Yes ใ€ใใ†ใงใชใ‘ใ‚Œใฐ No ใงใ‚ใ‚‹ใ€‚

ABC 406-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ไปปๆ„็ฒพๅบฆๆ•ดๆ•ฐใ‚’ไฝฟใฃใฆ็ฉใ‚’ๆฑ‚ใ‚ใ€็ฉใŒ $10^{K+1}$ ไปฅไธŠใซใชใฃใŸใ‚‰1ใซใ™ใ‚‹ใ€‚

ABC 406-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๆ–น้‡ใฏใ™ใ็ซ‹ใฃใŸใŒๅฎŸ่ฃ…ใŒ้€ฒใพใชใ‹ใฃใŸใ€‚

ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจ $U[i=1..N-1]$ ใฎ่ฆ็ด ใ‚’ใ€ $A[i+1] - A[i] &gt; 0$ ใชใ‚‰ $1$ ใ€ใใ†ใงใชใ‘ใ‚Œใฐ $0$ ใจใ™ใ‚‹ใ€‚ๅŒๆง˜ใซใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจ $D[i=1..N-1]$ ใ‚’ใ€ $A[i+1] - A[i] &lt; 0$ ใชใ‚‰ $1$ ใ€ใใ†ใงใชใ‘ใ‚Œใฐ $0$ ใจใ™ใ‚‹ใ€‚

$i=1..N-1$ ใซใคใ„ใฆๅ…จๆŽข็ดขใ™ใ‚‹ใ€‚

  • ใƒใƒซใƒ€ๅž‹ใฎ1็•ช็›ฎใฎ็‚นใ‚’ $i$ ใจใ™ใ‚‹
  • ใƒใƒซใƒ€ๅž‹ใฎ2็•ช็›ฎใฎ็‚นใ‚’ $L$ ใจใ™ใ‚‹ใ€‚ใ“ใ‚Œใฏ $U[i..L-1]$ ใŒใ™ในใฆ1ใจใชใ‚‹ๆœ€ๅคงใฎ $L$ ใงใ‚ใ‚‹ใ€‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใฎ max_right ใ‚’ไฝฟใฃใฆๆฑ‚ใ‚ใ‚‹ใ€‚
  • ใƒใƒซใƒ€ๅž‹ใฎ3็•ช็›ฎใฎ็‚นใ‚’ $M$ ใจใ™ใ‚‹ใ€‚ใ“ใ‚Œใฏ $D[L..M-1]$ ใŒใ™ในใฆ1ใจใชใ‚‹ๆœ€ๅคงใฎ $M$ ใงใ‚ใ‚‹ใ€‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใฎ max_right ใ‚’ไฝฟใฃใฆๆฑ‚ใ‚ใ‚‹ใ€‚
  • ใƒใƒซใƒ€ๅž‹ใฎ4็•ช็›ฎใฎ็‚นใ‚’ $R$ ใจใ™ใ‚‹ใ€‚ใ“ใ‚Œใฏ $U[M..R]$ ใŒใ™ในใฆ1ใจใชใ‚‹ๆœ€ๅคงใฎ $R$ ใงใ‚ใ‚‹ใ€‚ $[M,R)$ ใฏ้กŒๆ„ใ‚’ๆบ€ใŸใ™ใฎใงใ€ $R - M$ ใ‚’็ญ”ใˆใซๅŠ ใˆใ‚‹ใ€‚

ๅ…ฌๅผ่งฃ่ชฌใฏใƒฉใƒณใƒฌใƒณใ‚ฐใ‚นใง่งฃใ„ใฆใ„ใ‚‹ใ€‚

ABC 406-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

Cๅ•้กŒใจ็•ฐใชใ‚Šใ€ใ‚ใฃใ•ใ‚ŠๅฎŸ่ฃ…ใŒ็ต‚ใ‚ใฃใŸใ€‚

ๅ•้กŒใจใฏ $y,x$ ใฎๅฎš็พฉใ‚’ๅ…ฅใ‚Œๆ›ฟใˆใฆใ€ $y$ ใ‚’็ธฆ=่กŒใ€ $x$ ใ‚’ๆจช=ๅˆ—ใจใ™ใ‚‹ใ€‚

่กŒ $y$ ใซใ‚ใ‚‹ใฎใ”ใฟใฎไฝ็ฝฎใฎ้›†ๅˆใ‚’ $R[y=1..h]$ ใจใ™ใ‚‹ใ€‚ๅˆ— $x$ ใซใ‚ใ‚‹ใฎใ”ใฟใฎไฝ็ฝฎใฎ้›†ๅˆใ‚’ $C[x=1..w]$ ใจใ™ใ‚‹ใ€‚

  • ใ‚ฏใ‚จใƒช1ใฏใ€ $R[y]$ ใฎ่ฆ็ด ๆ•ฐใ‚’็ญ”ใˆใ‚‹ใ€‚ใใฎๅพŒ $x \in R[y]$ ใซใคใ„ใฆใ€ $C[x]$ ใ‹ใ‚‰ $y$ ใ‚’้™คใใ€‚
  • ใ‚ฏใ‚จใƒช2ใฏใ€ $C[x]$ ใฎ่ฆ็ด ๆ•ฐใ‚’็ญ”ใˆใ‚‹ใ€‚ใใฎๅพŒ $y \in C[x]$ ใซใคใ„ใฆใ€ $R[y]$ ใ‹ใ‚‰ $x$ ใ‚’้™คใใ€‚

่ฆ็ด ใ‚’้™คใๅ›žๆ•ฐใฏ้ซ˜ใ€… $N$ ๅ›žใชใฎใงๅ„Ÿๅด่จˆ็ฎ—้‡ใฏ $O(Nlog(N))$ ใงใ‚ใ‚‹ใ€‚

ABC 406-F

Eๅ•้กŒใฏ่งฃใ‘ใชใ„ใฎใซFๅ•้กŒใฏ่งฃใ‘ใ‚‹ใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใ‚ชใ‚คใƒฉใƒผใƒ„ใ‚ขใƒผใ‚’ไฝฟใฃใฆ้ƒจๅˆ†ๆœจใฎๅŒ…ๅซ้–ขไฟ‚ใ‚’ๆง‹็ฏ‰ใ™ใ‚‹ใ€‚

ใ‚ชใ‚คใƒฉใƒผใƒ„ใ‚ขใƒผใฎใƒ‘ใ‚นใคใพใ‚Š $i$ ็•ช็›ฎใซ้ ‚็‚น $v$ ใ‚’ใŸใฉใฃใŸใ“ใจใ‚’ $P[i] = v$ ใจใ™ใ‚‹ใ€‚ใพใŸ้ ‚็‚น1ใ‚’ๆ นใจใ—ใŸใจใใฎ้ ‚็‚น $v$ ใฎๆทฑใ•ใ‚’ $D[v]$ ใจใ™ใ‚‹ใ€‚ใ“ใ‚Œใ‚‰ใ‚’ใ‚ชใ‚คใƒฉใƒผใƒ„ใ‚ขใƒผใงๆฑ‚ใ‚ใ‚‹ใ€‚

ใ‚ชใ‚คใƒฉใƒผใƒ„ใ‚ขใƒผใซใŠใ‘ใ‚‹้ ‚็‚นใฎๅ‡บๅ…ฅๅฃใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚้ ‚็‚น $v$ ใ‚’ๅ›บๅฎšใ—ใฆ $P[i] = v$ ใจใชใ‚‹ๆœ€ๅฐใฎ $i$ ใ‚’ $In[v] = i$ ใ€ $P[i] = v$ ใจใชใ‚‹ๆœ€ๅคงใฎ $i$ ใ‚’ $Out[v] = i$ ใจใ™ใ‚‹ใ€‚็‰นใซ่‘‰ใซใคใ„ใฆใฏใ€ $In[v] = Out[v]$ ใงใ‚ใ‚‹ใ€‚

ใ‚ชใ‚คใƒฉใƒผใƒ„ใ‚ขใƒผใฎใƒ‘ใ‚น้•ทใ‚’่ฆ็ด ๆ•ฐใจใ™ใ‚‹ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจ $T$ ใจใ™ใ‚‹ใ€‚ $T$ ใซใฏ้ ‚็‚น $v$ ใฎ้‡ใฟใ‚’่ผ‰ใ›ใ‚‹ใŒใ€่ผ‰ใ›ใ‚‹ๅ ดๆ‰€ใฏ $In[v]$ ใจใ™ใ‚‹ใ€‚้ ‚็‚น $v$ ใซใคใ„ใฆๅŒบ้–“ๅ’Œ $T[In[v],max(In[v],Out[v]-1)]$ ใŒใ€้ ‚็‚น $v$ ใ‚’ๆ นใจใ™ใ‚‹้ƒจๅˆ†ๆœจใฎ้‡ใฟใฎๅ’Œใงใ‚ใ‚‹ใ€‚ใ“ใฎ $max$ ใฏใ€ $v$ ใŒ่‘‰ใฎใจใใซ้ ‚็‚น $v$ ่‡ช่บซใฎ้‡ใฟใ‚’่ฟ”ใ™ใŸใ‚ใซใ‚ใ‚‹ใ€‚

ใ‚ใจใฏใ‚ฏใ‚จใƒชใ‚’็ต„ใฟ็ซ‹ใฆใ‚‹ใ€‚

  • $T[In[i=1..N]] = 1$ ใงๅˆๆœŸๅŒ–ใ™ใ‚‹ใ€‚ใ™ในใฆใฎ้ ‚็‚นใฎ้‡ใฟใฎๅ’Œใ‚’ใ€ $S = N$ ใงๅˆๆœŸๅŒ–ใ™ใ‚‹ใ€‚
  • ใ‚ฏใ‚จใƒช1ใฏใ€ $T[In[x]]$ ใซ $w$ ใ‚’ๅŠ ็ฎ—ใ™ใ‚‹ใ€‚ $S$ ใซ $w$ ใ‚’ๅŠ ใˆใ‚‹ใ€‚
  • ใ‚ฏใ‚จใƒช2ใฏใ€่พบ $y$ ใฎ้ ‚็‚น $u,v$ ใฎใ†ใกๆทฑใ„(้ ‚็‚น1ใ‹ใ‚‰ใฎ่ท้›ขใŒ้•ทใ„: $D[u], D[v]$ ใฎๅคงใใ„)ๆ–นใ‚’ $z$ ใจใ™ใ‚‹ใ€‚ๆทฑใ•ใŒๅŒใ˜ใชใ‚‰ใฉใกใ‚‰ใงใ‚‚ใ‚ˆใ„ใ€‚้ƒจๅˆ†ๆœจใฎ้‡ใฟ $W$ ใจใ€ๆฎ‹ใ‚Šใฎ้ƒจๅˆ†ๆœจใฎ้‡ใฟ $S - W$ ใฎๅทฎใŒ็ญ”ใˆใชใฎใงใ€ $|S - 2 \times T[In[z],max(In[z],Out[z]-1)]|$ ใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ๅ…ฌๅผ่งฃ่ชฌใจๅŒใ˜่งฃใๆ–นใงใ‚ใ‚‹ใ€‚

ABC 407-A

ใƒใƒใƒฃใงใฏใชใใ€ไธ€ๅ•ใšใค่งฃใ„ใŸใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$\lfloor A/B \rfloor$ ใจ $\lceil A/B \rceil$ ใฎใ†ใก $A/B$ ใจใฎๅทฎใŒๅฐใ•ใ„ๆ–นใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

ABC 407-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ไบŒใคใฎใ‚ตใ‚คใ‚ณใƒญใฎๅ‡บ็›ฎใ‚’็ทๅฝ“ใŸใ‚Šใ—ใ€่ฉฒๅฝ“ใ™ใ‚‹ๅ ดๅˆใ‚’ $6^2$ ใงๅ‰ฒใ‚‹ใ€‚

ABC 407-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใƒœใ‚ฟใƒณAใ‚’ๆŠผใ™ๅ›žๆ•ฐใฏ $|S|$ ใชใฎใงใ€ใƒœใ‚ฟใƒณBใ‚’ๆŠผใ™ๅ›žๆ•ฐใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚

$S$ ใฎๅพŒใ‚ใ‹ใ‚‰่€ƒใˆใ‚‹ใ€‚ใ“ใ‚Œใพใงใƒœใ‚ฟใƒณBใ‚’ๆŠผใ—ใŸๅ›žๆ•ฐใ‚’ $C$ ใจใ™ใ‚‹ใ€‚ $S$ ใฎใ‚ใ‚‹ๆกใ‚’ $D$ ใซใ™ใ‚‹ใซใฏใ€ $0$ ใ‚’ $C$ ๅ›žๆŠผใ—ใฆใ€ใใ“ใ‹ใ‚‰ไฝ•ๅ›žใ‹ๆŠผใ—ใฆ $D$ ใซใ™ใ‚‹ใ€‚ใ“ใฎๆœ€ๅฐๅ›žๆ•ฐใฏใ€ $(D + 10 - C) mod 10$ ๅ›žใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ $C$ ใซ่ถณใ—ใฆๆฌกใฎๆกใซใคใ„ใฆๆฑ‚ใ‚ใ‚‹ใ€‚

็ญ”ใˆใฏ $|S| + C$ ใงใ‚ใ‚‹ใ€‚

ABC 407-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

std::bitset<32>::set() ใŒๅผ•ๆ•ฐ็„กใ—ใงใ‚ณใƒณใƒ‘ใ‚คใƒซใงใใ€ใ—ใ‹ใ‚‚ใŸใพใŸใพๅ…ฅๅŠ›ไพ‹ใŒ้€šใฃใฆใ—ใพใฃใŸใฎใง1ใƒšใƒŠใ—ใŸใ€‚

XORใชใฎใง็ทๅฝ“ใŸใ‚Šใ—ใ‹ใชใ„ใ€‚ใƒ‰ใƒŸใƒŽใ‚’ๆ—ขใซ็ฝฎใ„ใŸไฝ็ฝฎใ‚’ std::bitset<32> ใง็ฎก็†ใ—ใ€ใƒ‰ใƒŸใƒŽใŒ็ฝฎใ‹ใ‚Œใฆใ„ใชใ„ใƒžใ‚นใซๆ›ธใ‹ใ‚ŒใŸๆ•ดๆ•ฐใ™ในใฆใฎใƒ“ใƒƒใƒˆใ”ใจใฎๆŽ’ไป–็š„่ซ–็†ๅ’Œใ‚’ $C$ ใงๆฑ‚ใ‚ใฆใŠใใ€‚

ใƒ‰ใƒŸใƒŽใ‚’็ฝฎใใŸใ„ใƒžใ‚น $[y,x]$ ใ‚’ๆฐดๅนณใ‹ใ‚‰ๅž‚็›ดๆ–นๅ‘ใซใ‚นใ‚ญใƒฃใƒณใ—ใฆDFSใ™ใ‚‹ใ€‚ $x$ ใ‚’1ใšใคๅข—ใ‚„ใ—ใ€ $x = W$ ใชใ‚‰ $y$ ใ‚’1ๅข—ใ‚„ใ—ใฆ $x = 1$ ใซใ™ใ‚‹ใ€‚

  • $[y,x]$ ใซใƒ‰ใƒŸใƒŽใŒใชใ‘ใ‚Œใฐ็ฝฎใ„ใฆใ‚‚ใ‚ˆใ„
    • ใƒ‰ใƒŸใƒŽใ‚’ๆจชใซ็ฝฎใใ€‚ใคใพใ‚Š $[y,x],[y,x+1]$ ใซใฏใฟๅ‡บใ•ใชใ„็ฏ„ๅ›ฒ ($x+1 \leq W$) ใง็ฝฎใใ€‚ $C$ ใ‚’ $C \oplus A_{y,x} \oplus A_{y,x+1}$ ใงๆ›ดๆ–ฐใ™ใ‚‹ใ€‚
    • ใƒ‰ใƒŸใƒŽใ‚’็ธฆใซ็ฝฎใใ€‚ใคใพใ‚Š $[y,x+1],[y,x]$ ใซใฏใฟๅ‡บใ•ใชใ„็ฏ„ๅ›ฒ ($y+1 \leq H$) ใง็ฝฎใใ€‚ $C$ ใ‚’ $C \oplus A_{y,x} \oplus A_{y+1,x}$ ใงๆ›ดๆ–ฐใ™ใ‚‹ใ€‚
  • ็ฝฎใ‹ใชใ„ใงๆฌกใฎไฝ็ฝฎใ‚’่ชฟในใ‚‹

ABC 407-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅ…ฌๅผ่งฃ่ชฌใ‚’่ชญใ‚€ใพใงๅ…จใๆ‰‹ๆŽ›ใ‹ใ‚ŠใŒใคใ‹ใ‚ใชใ‹ใฃใŸใ€‚

ABC 407-F

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

็›ธๅค‰ใ‚ใ‚‰ใšใ€Eๅ•้กŒใฏ่งฃใ‘ใชใ„ใŒFๅ•้กŒใฏ่งฃใ‘ใ‚‹ใ€‚

ใ‚ใ‚‹ $A_i$ ใŒๆœ€ๅคงๅ€คใจใชใ‚Šใ†ใ‚‹ๅŒบ้–“ $[L,R]$ ใ‚’ใ€ $A$ ใฎ้™้ †ใซๆฑ‚ใ‚ใ‚‹ใ€‚ $[L,R]$ ใŒๆฑ‚ใพใฃใŸใ‚‰ใ€ $[L,R]$ ใซๅซใพใ‚Œใ‚‹ $i$ ใ‚’ๅซใ‚€ใ™ในใฆใฎ้ƒจๅˆ†ๅŒบ้–“ $[l,r]$ ใฎ้•ทใ•ใซใคใ„ใฆใ€ $A_i$ ใ‚’่ถณใ›ใฐใ‚ˆใ„ใ€‚ใ„ใ‹ใซใ‚‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใจ้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใงใ‚ใ‚‹ใ€‚

ๅ‰ๆบ–ๅ‚™ใจใ—ใฆใ€ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใจ้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใ‚’็”จๆ„ใ™ใ‚‹ใ€‚

  • $i = 1..N$ ใฎใ†ใกใ€ $A_i$ ใ‚’ๆ—ขใซใฟใฆใ„ใŸใ‚‰1ใ€ใพใ ่ฆ‹ใฆใ„ใชใ„ใชใ‚‰0ใซๅฏพๅฟœใ™ใ‚‹ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจ $T$ ใ‚’ไฝœใ‚‹ใ€‚ไธ€็‚นๆ›ดๆ–ฐใ€ๅŒบ้–“minใ‚’ๅ–ใ‚‹ใ“ใจใงใ€ใ‚ใ‚‹ไฝ็ฝฎ $i$ ใฎๅ‰ๅพŒใซใ‚ใ‚‹ใ€ใพใ ่ฆ‹ใฆใ„ใชใ„ไฝ็ฝฎใŒๅˆ†ใ‹ใ‚‹ใ€‚ใ“ใ‚Œใฏ std::set ใงใ‚‚ใ‚ˆใ„ใ€‚
  • ็ญ”ใˆใ‚’้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจ $U$ ใซ่ผ‰ใ›ใ‚‹ใ€‚ๅŒบ้–“้•ท $j$ ใฎ็ญ”ใˆใ‚’ $U[j]$ ใจใ—ใ€ๆผ”็ฎ—ใฏใ™ในใฆๆ•ดๆ•ฐๅŠ ็ฎ—ใซใ™ใ‚‹ใ€‚ๅ…ฌๅผ่งฃ่ชฌใซใ‚ˆใ‚Œใฐใ€ๆ™ฎ้€šใฎใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใจใ„ใ‚‚ใ™ๆณ•ใงใ‚‚ใ‚ˆใ„ใ€‚

$A_i$ ใ‚’้™้ †ใซไธฆในใ‚‹ใ€‚ๅ€คใŒ็ญ‰ใ—ใ„ใ‚‚ใฎใฏไธ€ๆ‹ฌๅ‡ฆ็†ใ™ใ‚‹ใฎใงใ€ๅ€ค $A_i = v$ ใจใชใ‚Šใ†ใ‚‹ไฝ็ฝฎ $i$ ใฎ้›†ๅˆใ‚’ $S_v$ ใจใ™ใ‚‹ใ€‚ไปฅไธ‹ $S_v$ ใ”ใจใซๅ‡ฆ็†ใ‚’็นฐใ‚Š่ฟ”ใ™ใ€‚

  • $i \in S_v$ ใซใคใ„ใฆใ€ๆ—ขใซ $S_v$ ใฎใ†ใก่ฆ‹ใŸไฝ็ฝฎใ‚’ $M$ ใจใ™ใ‚‹(ใชใ‘ใ‚Œใฐ-1)
  • $i$ ใฎๅ‰ๅพŒใซใ‚ใ‚‹ใ€ใพใ ่ฆ‹ใฆใ„ใชใ„ๅŒบ้–“ใ‚’ $[L,R]$ ใจใ™ใ‚‹ใ€‚ $T$ ใ‚’ไบŒๅˆ†ๆŽข็ดขใ™ใ‚‹ใจๆฑ‚ใพใ‚‹ใ€‚ๅฐ‘ใชใใจใ‚‚ไธ€็‚นๅŒบ้–“ $[i,i]$ ใ‚’ๅซใฟใ€ใใ‚Œใ‚ˆใ‚Šๅบƒใ„ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใ€‚
  • ไป–ใฎ $S_v$ ใงๆ—ขใซใฟใŸๅŒบ้–“ใ‚’็„ก่ฆ–ใ™ใ‚‹ใŸใ‚ใซใ€ $L = max(M+1, L)$ ใจๆ›ดๆ–ฐใ™ใ‚‹
  • ไธ€็‚นๅŒบ้–“ $[i,i]$ ใซๅฏพๅฟœใ™ใ‚‹็ญ”ใˆใจใ—ใฆ $U[1]$ ใซ $a$ ใ‚’ๅŠ ็ฎ—ใ™ใ‚‹
  • $i$ ใ‚’ๅณ็ซฏใจใ™ใ‚‹ๅŒบ้–“ใซๅฏพๅฟœใ™ใ‚‹็ญ”ใˆใจใ—ใฆใ€ $i$ ใ‚’้™คใๅŒบ้–“้•ท $WL = i-L$ ใซใคใ„ใฆ $U[2..(1+WL)]$ ใซ $a$ ใ‚’ไธ€ๆ‹ฌๅŠ ็ฎ—ใ™ใ‚‹
  • $i$ ใ‚’ๅทฆ็ซฏใจใ™ใ‚‹ๅŒบ้–“ใซๅฏพๅฟœใ™ใ‚‹็ญ”ใˆใจใ—ใฆใ€ $i$ ใ‚’้™คใๅŒบ้–“้•ท $WR = R-i$ ใซใคใ„ใฆ $U[2..(1+WR)]$ ใซ $a$ ใ‚’ไธ€ๆ‹ฌๅŠ ็ฎ—ใ™ใ‚‹
  • $i$ ใ‚’ๅทฆ็ซฏใงใ‚‚ๅณ็ซฏใงใ‚‚ใชใๅซใ‚€ๅŒบ้–“ใซๅฏพๅฟœใ™ใ‚‹็ญ”ใˆใจใ—ใฆ $WL$ ใจ $WR$ ใฎใ™ในใฆใฎๅ’Œ $w$ ใฎ็ต„ใฟๅˆใ‚ใ›ใซใคใ„ใฆ $U[w]$ ใซ $a$ ใ‚’ๅŠ ็ฎ—ใ™ใ‚‹
  • $M = R + 1$ ใจๆ›ดๆ–ฐใ™ใ‚‹

$U[w]$ ใ‚’ไบŒ้‡ใƒซใƒผใƒ—ใซใ—ใฆ $a$ ใ‚’ๅŠ ็ฎ—ใ™ใ‚‹ใจๅคง้‡ใซTLEใ™ใ‚‹ใ€‚ใใ“ใง $WL$ ใจ $WR$ ใฎไบŒ้‡ใƒซใƒผใƒ—ใฎใ†ใกใ€ๅฐใ•ใ„ๆ–นใ‚’ใƒซใƒผใƒ—ใ—ใฆใ€ๅคงใใ„ๆ–นใ‚’้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใฎๅŒบ้–“ๆ›ดๆ–ฐใซใ™ใ‚‹ใ€‚ $WL &lt; WR$ ใชใ‚‰ $j = 1..WL$ ใซใคใ„ใฆ $U[(j+1)..(j+WR)]$ ใซ $a$ ใ‚’่ถณใ™ใจไธ€้‡ใƒซใƒผใƒ—ใซใชใ‚‹ใ€‚ใ“ใ“ใง $WL,WR$ ใฎๅฐใ•ใ„ๆ–นใ‚’ใƒซใƒผใƒ—ใซใ—ใชใ„ใจ1 TLEใ™ใ‚‹ใ€‚

ไธŠ่จ˜ใ‚’ไธ€้€šใ‚Š่กŒใ„ใ€ $U[1..N]$ ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

ABC 408-A

ใƒใƒใƒฃใงใฏใชใใ€ไธ€ๅ•ใšใค่งฃใ„ใŸใ€‚็ฟŒๆœใงใฏใชใ4ๆ—ฅ้–“ๆŽ›ใ‘ใฆ่งฃใ„ใŸใ€‚Dๅ•้กŒใง่บ“ใใ€Eๅ•้กŒใฎ่€ƒๅฏŸใซๆ™‚้–“ใŒๆŽ›ใ‹ใ‚Šใ€Fๅ•้กŒใฏๅฎŸ่ฃ…ใŒ้€ฒใพใชใ‹ใฃใŸใ€‚

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$T_0 = 0$ ใจใ—ใฆใ€ $T_{i+1} - T_i &gt; S$ ใจใชใ‚‹ $i$ ใŒไธ€ใคใงใ‚‚ใ‚ใ‚Œใฐ No ใ€ใใ†ใงใชใ‘ใ‚Œใฐ Yes ใงใ‚ใ‚‹ใ€‚

ABC 408-B

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

std::set ใซๅ…ฅใ‚Œใฆไธ€ใคใšใคๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

ABC 408-C

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

$[L-1,R)$ ใ‚’ใ„ใ‚‚ใ™ๆณ•ใง่ถณใ™ใ€‚ใคใพใ‚Šๅข—ๅˆ† $C[i]$ ใซใคใ„ใฆใ€ $C[L-1]$ ใซ1ใ‚’่ถณใ—ใ€ $C[R]$ ใ‹ใ‚‰1ใ‚’ๅผ•ใใ€‚ $C$ ใฎ็ดฏ็ฉๅ’Œใฎๆœ€ๅฐๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ABC 408-D

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ใ‚ณใƒณใƒ†ใ‚นใƒˆใฎ็ฟŒๆ™ฉ่งฃใ„ใŸใ‚‰้ ญใŒๅ›žใ‚‰ใชใใฆ่งฃใ‘ใชใ‹ใฃใŸใ€‚็ฟŒใ€…ๆœใซ่งฃใ„ใŸใ€‚ๆœ้ ญใŒๅ†ดใˆใฆใชใ„ใจ่€ƒใˆใŒใพใจใพใ‚‰ใชใ„ใ€‚

$S$ ใŒๅ…จ้ƒจ0ใชใ‚‰็ญ”ใˆใฏ0ใงใ‚ใ‚‹ใ€‚

$S_{i=1..N}$ ใฎ็ดฏ็ฉๅ’Œใ‚’ $C_i$ ใจใ™ใ‚‹ใ€‚ไพฟๅฎœไธŠ $C_0=0$ ใจใ™ใ‚‹ใ€‚

้€ฃ็ถšใ™ใ‚‹1ใฎๆœ€ๅทฆไฝ็ฝฎใ‚’ $L$ ใซใ™ใ‚‹ใจๆฑบใ‚ๆ‰“ใกใ™ใ‚‹ใ€‚้€ฃ็ถšใ™ใ‚‹1ใฎๆœ€ๅณไฝ็ฝฎใ‚’ $R$ ใซใ™ใ‚‹ใจๆฑบใ‚ๆ‰“ใกใ™ใ‚‹ใ€‚ $L=1$ ใฎใจใใ€็ญ”ใˆใคใพใ‚Š01ใ‚’ๅ่ปขใ™ใ‚‹ๅ›žๆ•ฐใฏใ€ $[L,R]$ ใซๅซใพใ‚Œใ‚‹0ใฎๆ•ฐใจใ€ $[R+1,N]$ ใซๅซใพใ‚Œใ‚‹1ใฎๆ•ฐใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใฏ็ดฏ็ฉๅ’Œใ‹ใ‚‰ $R + 1 - L + C_R - C_{L-1} + (C_N - C_R)$ ใงใ‚ใ‚‹ใ€‚ใ“ใฎๅ€คใ‚’ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจ $T[L]$ ใซ่ผ‰ใ›ใฆใ€ไธ€็‚นๆ›ดๆ–ฐๅŒบ้–“minใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚

$L=1$ ใฎใจใใฏใ€ $min T[1..N]$ ใฎๆœ€ๅฐๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚ $L &gt; 1$ ใฎใจใใฏใ€ $[1,L)$ ใซๅซใพใ‚Œใ‚‹1ใฎๆ•ฐ $C_{L-1}$ ใ‚’่€ƒๆ…ฎใ—ใฆใ€ $C_{L-1} + min T[L..N]$ ใŒ็ญ”ใˆใงใ‚ใ‚‹(ใ“ใ‚Œใฏ $L=1$ ใงใ‚‚ๆˆใ‚Š็ซ‹ใค)ใ€‚ใ“ใ‚Œใ‚’ใ™ในใฆใฎ $L=1..N$ ใซใคใ„ใฆๆฑ‚ใ‚ใ‚‹ใจๆœ€็ต‚็š„ใช็ญ”ใˆใŒๆฑ‚ใพใ‚‹ใ€‚่จˆ็ฎ—้‡ใฏ $O(Nlog(N))$ ใงใ‚ใ‚‹ใ€‚

ๅ…ฌๅผ่งฃ่ชฌใซใ‚ˆใ‚‹ใจใ€็ดฏ็ฉminใ‚’ๆฑ‚ใ‚ใ‚‹ใจ $O(N)$ ใ‚‰ใ—ใ„ใ€‚ๅฎŸ่ฃ…ใฏ ใ“ใกใ‚‰ ใ€‚

ABC 408-E

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

ๅˆถ็ด„ใ‹ใ‚‰ๅฏŸใ—ใŸใ€‚

3็ง’ๅˆถ้™ใชใฎใ ใ‹ใ‚‰ใ€ $w &lt; 2^{30}$ ใ‹ใ‚‰ $30$ ๅ›ž $M$ ่พบใ‚’BFSใ™ใ‚‹ใฎใ ใ‚ใ†ใจๆ€ใฃใŸใ€‚ๅฎŸ้š›ใใฎ้€šใ‚Šใงใ‚ใ‚‹ใ€‚

็ญ”ใˆ $A$ ใ‚’ใ‚ณใ‚นใƒˆใจๅ‘ผใถใ€‚2ใฎในใไน—ใฎๆŒ‡ๆ•ฐ $P = 30..0$ ใ‚’้™้ †ใซ่ฆ‹ใฆใ„ใใ€‚ใ‚ใ‚‹ $P$ ใซใคใ„ใฆใ€่พบใฎ้‡ใฟใฏ $C=2^P$ ๆกๆˆๅˆ†ใ ใ‘่€ƒใˆใฆไป–ใฏ่€ƒใˆใชใ„ใ€‚

่พบใฎ้‡ใฟใ‚’ $w \land C$ ใจใฟใชใ—ใฆBFSใ™ใ‚‹ใ€‚้ ‚็‚น1ใ‹ใ‚‰ใฎ่ท้›ขใฏใ€ๆœชๅˆฐ้”ใชใ‚‰ $\infty$ ใ€ๅˆฐ้”ใ—ใฆใ„ใ‚‹ใชใ‚‰ $C$ ใพใŸใฏ $0$ ใฎไบŒๅ€คใซใชใ‚‹ใ€‚้ ‚็‚นใพใงใฎ่ท้›ขใŒๆธ›ใ‚‹ๆ–นๅ‘ใ ใ‘ๆŽข็ดขใ—ใ€ๆธ›ใ‚‰ใชใ„ๆ–นๅ‘ใซใฏ็งปๅ‹•ใ—ใชใ„ใ€‚ใใ†ใ™ใ‚‹ใจใƒ€ใ‚คใ‚ฏใ‚นใƒˆใƒฉๆณ•ใฎใ‚ˆใ†ใช $O(Nlog(N))$ ใงใฏใชใใ€ $O(N)$ ใงๆŽข็ดขใ™ใ‚‹ใ“ใจใŒใงใใ€ใƒซใƒผใƒ—ใซใ‚‚ใชใ‚‰ใชใ„ใ€‚

้ ‚็‚น $N$ ใพใงใฎ่ท้›ขใŒ $C$ ใชใ‚‰ใ€้ ‚็‚น1ใ‹ใ‚‰้ ‚็‚นNใพใงใฉใ†ใ„ใ†็ตŒ่ทฏใ‚’ใจใฃใฆใ‚‚ใ‚ณใ‚นใƒˆ $C$ ใฏ้ฟใ‘ใ‚‰ใ‚Œใชใ„ใ€‚ใ‚ˆใฃใฆ็ญ”ใˆ $A$ ใซ $C$ ใ‚’ๅŠ ็ฎ—ใ—ใ€ใ™ในใฆใฎ้ ‚็‚นใ‹ใ‚‰ $C$ ๆˆๅˆ†ใ‚’้™คใ( $w$ ใ‚’ $w \land (\lnot C)$ ใงๆ›ดๆ–ฐใ™ใ‚‹)ใ€‚

้ ‚็‚น $N$ ใพใงใฎ่ท้›ขใŒ $0$ ใชใ‚‰ใ€้ ‚็‚น1ใ‹ใ‚‰้ ‚็‚นNใพใงใ‚ใ‚‹็ตŒ่ทฏใ‚’้€šใ‚Œใฐใ‚ณใ‚นใƒˆใฏๅข—ใˆใชใ„ใ€‚ใ‚ˆใฃใฆ่พบใฎใ†ใก $C$ ๆˆๅˆ†ใŒใ‚ใ‚‹( $w \land C &gt; 0$ ) ่พบใ‚’้™คใ„ใฆใ‚ฐใƒฉใƒ•ใ‚’ๅ†ๆง‹ๆˆใ™ใ‚‹ใ€‚ใ“ใฎใ‚ˆใ†ใช่พบใฏ้€šใ‚‹ในใใงใฏใชใ„ใฎใง้™คใๅฟ…่ฆใŒใ‚ใ‚Šใ€้™คใ„ใฆใ‚‚้ ‚็‚น1ใ‹ใ‚‰้ ‚็‚นNใซใฏๅˆฐ้”ๅฏ่ƒฝใงใ‚ใ‚‹ใ€‚

ไธŠ่จ˜ใฎใ‚ˆใ†ใซ่พบใฎ้‡ใฟใ‚’ๅค‰ใˆใ‚‹ใ‹่พบใ‚’้™คใ„ใŸใ‚ฐใƒฉใƒ•ใซใคใ„ใฆใ€ $P$ ใ‚’1ๆธ›ใ‚‰ใ—ใฆๅŒๆง˜ใซ็นฐใ‚Š่ฟ”ใ™ใ€‚ๆœ€็ต‚็š„ใช็ทใ‚ณใ‚นใƒˆ $A$ ใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚ๅ…ฌๅผ่งฃ่ชฌใจใฏๅฐ‘ใ—็•ฐใชใ‚‹ใ€‚

ABC 408-F

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰

้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใ‚’ไฝฟใ†ใ“ใจใฏไธ€็›ฎ็žญ็„ถใ ใŒใ€ใใ“ใ‹ใ‚‰ใŒๅคงๅค‰ใงใ‚ใ‚‹ใ€‚

่ถณๅ ดใŒ้ซ˜ใ„้ †ใซใฟใ‚‹ใ€‚ใ“ใฎ้…ๅˆ—ใ‚’ $V$ ใจใ™ใ‚‹ใ€‚ $D = 0$ ใจใ—ใฆใ€่ถณๅ ด $H_j$ ใ‚’ใฟใ‚‹ใจใใซใ€ใใฎๅ‰ๅพŒใฎ่ถณๅ ด $[j-R, j+R]$ ใพใงใฎ็งปๅ‹•ๅ›žๆ•ฐ + 1ใซใ™ใ‚Œใฐใ‚ˆใ„ใ“ใจใฏๅˆ†ใ‹ใ‚‹ใ€‚

ใ“ใ‚Œใฏ้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจ $T[i]$ ใ‚’ใ€่ถณๅ ด $i$ ใพใงใฎ็งปๅ‹•ๅ›žๆ•ฐใฎๆœ€ๅคงๅ€คใจใ—ใฆใ€ๅŒบ้–“maxใงๆฑ‚ใพใ‚‹ใ€‚ $T[i]$ ใฎๅˆๆœŸๅ€คใฏ0ใงใชใ $- \infty$ ใงใ€ใ“ใ“ใ‚’้–“้•ใˆใ‚‹ใจ5 WAsใ™ใ‚‹ใ€‚

$D &gt; 0$ ใ‚’ๅˆฉ็”จใ™ใ‚‹ใซใฏใ€ $H_j \leq H_i + D$ ใช่ถณๅ ด $i$ ใ ใ‘ใ‚’็งปๅ‹•ๅ›žๆ•ฐใซๆ•ฐใˆใ‚‹ใ‚ˆใ†ใซใ™ใ‚‹ใ€‚ใ“ใ‚Œใฏ้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใ‚’ๆ›ดๆ–ฐใ™ใ‚‹ใ‚ฟใ‚คใƒŸใƒณใ‚ฐใ‚’ใ€ $V$ ใฎ่ฆ็ด  $H$ ใ‚’ใฟใŸใจใใงใฏใชใใ€ $H$ ใ‚’้…ๅปถ่ฆ็ด  $U$ ใซ็ฉใ‚“ใงใ€ ใ‚ใ‚‹่ถณๅ ด $H_j$ ใซๅฏพใ—ใฆ $H_j + D \leq H$ ใŒๆˆ็ซ‹ใ—ใŸๆ™‚ใซใ™ใ‚‹ใ€‚

ใ‚ณใƒผใƒ‰ใ‚’่ฆ‹ใŸๆ–นใŒๆ—ฉใ„ใŒใ€ใƒซใƒผใƒ—ใ‚’ไปฅไธ‹ใฎๅ–ใ‚Šๆง‹ๆˆใ™ใ‚‹ใ€‚

  • ่ถณๅ ดใŒ้ซ˜ใ„้ †ใซ $V$ ใ‹ใ‚‰่ถณๅ ด $H_j$ ใ‚’ๅ–ใ‚Šๅ‡บใ™
    • $U$ ใ‹ใ‚‰ $H_j + D \leq H_i$ ใชใ‚‹ $H_i$ ใ‚’ใใ‚Œใžใ‚Œๅ–ใ‚Šๅ‡บใ™
    • $T[i] = \infty$ ใชใ‚‰ $T[i] = 1$ ใซใ™ใ‚‹ใ€‚ใใ†ใงใชใ‘ใ‚Œใฐ $T[i]$ ใ‚’1ๅข—ใ‚„ใ™ใ€‚
  • ็ญ”ใˆ $A$ ใ‚’ $max(A, T[j-R, j+R])$ ใซๆ›ดๆ–ฐใ™ใ‚‹

ไธŠ่จ˜ใฎ็ญ”ใˆ $max(0,A)$ ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚ใ‚ˆใ่€ƒใˆใŸใ‚‰้…ๅปถใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใงใฏใชใๆ™ฎ้€šใฎใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใงใ‚ˆใ‹ใฃใŸใ€‚

โš ๏ธ **GitHub.com Fallback** โš ๏ธ