Skip to content

ABC lessons learned2

zettsu-t edited this page Jul 17, 2023 · 23 revisions

AtCoder Beginner Contest lessons learned (ABC 151-200)

ABC 6,8ๅ•ไฝ“ๅˆถ(126..ๆœ€ๆ–ฐ)ใฎDๅ•้กŒใ‚’ใ ใ„ใŸใ„่งฃใ„ใŸใฎใงใ€ใใ“ใ‹ใ‚‰ๅพ—ใŸๆ•™่จ“ใ‚’ใพใจใ‚ใฆใ„ใใพใ™ใ€‚

ABC 151-160

ABC 151-D

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

ใƒžใ‚นใ‚’้ ‚็‚นใ‚’ใฟใชใ—ใฆใ€ใ‚ใ‚‹ใƒžใ‚นใ‹ใ‚‰ไป–ใฎใƒžใ‚นใธใฎๆœ€็Ÿญ่ท้›ขใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚126-DใจๅŒๆง˜ใซBFSใงๆฑ‚ใพใ‚‹ใ€‚ๆœจใงใฏใชใ„ใฎใงใ€ๆ—ข็Ÿฅใฎๆœ€็Ÿญ่ท้›ขใงใฏใชใ„ใƒžใ‚นใฏ็งปๅ‹•ใ—ใชใ„(็งปๅ‹•ใ™ใ‚‹ใจ็„ก้™ใƒซใƒผใƒ—ใซใชใ‚‹)ใ€‚

ABC 152-D

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

NใŒ200000ใจ่ชญใ‚“ใงใ€ใ„ใ‚ใ„ใ‚ๆŽข็ดขใ™ใ‚‹ใ‚ˆใ‚Šๆ•ฐใˆไธŠใ’ใŸๆ–นใŒๆ—ฉใๅฎŸ่ฃ…ใงใใ‚‹ใ€ใจๅ‹˜ใฅใใ€‚

ๅ…ˆ้ ญใจๆœซๅฐพใฎ็ต„ใฏ9x9=81้€šใ‚Šใ—ใ‹ใชใ„ใฎใงใ€ $1..N$ ใ‚’81้€šใ‚Šใซๅˆ†้กžใ™ใ‚Œใฐใ‚ˆใ„ใ€‚K้€ฒๆ•ฐใฎๆœ€ไธŠไฝใฎๆกใฏใ€Kใง็นฐใ‚Š่ฟ”ใ—ๅ‰ฒใฃใฆKๆœชๆบ€ใซใชใฃใŸใจใใฎๆ•ฐใงใ‚ใ‚‹ใ€‚

ABC 153-D

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

ไธŠๆ‰‹ใ็Šถๆ…‹้ท็งปใ‚’ใพใจใ‚ใ‚Œใฐใ€็Šถๆ…‹ๆ•ฐใŒๆŒ‡ๆ•ฐใซใชใ‚‹ใฎใ‚’้˜ฒใ’ใ‚‹ใ€‚

ใƒขใƒณใ‚นใ‚ฟใƒผใ‚’ใฉใ†ใ„ใ†้ †็•ชใงๆ”ปๆ’ƒใ—ใฆใ‚‚ใ€ไฝ“ๅŠ›ใŒ0ใซใชใ‚‹ใพใงใฎไฝ“ๅŠ›ใฎๆธ›ใ‚Šๆ–นใฏๅŒใ˜ใ€ใจใ„ใ†ใ“ใจใŒ้‡่ฆใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆไฝ“ๅŠ›ใฎๆธ›ใ‚Šๆ–นใฎ็ตŒ่ทฏใฏไธ€้€šใ‚Šใ ใ‘(2ใง็นฐใ‚Š่ฟ”ใ—ๅ‰ฒใ‚‹)ใงใ€ใ‚ใ‚‹ไฝ“ๅŠ›ใฎใƒขใƒณใ‚นใ‚ฟใƒผใŒไฝ•ไฝ“ใ‚ใ‚‹ใ‹ใ ใ‘ๆ•ฐใˆใ‚Œใฐๆ”ปๆ’ƒๅ›žๆ•ฐใซใชใ‚‹ใ€‚

ABC 153-E

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

Greedyใ ใจๆ€ใฃใŸใ‚‰DPใ ใฃใŸใ€‚

ใจใ„ใ†ใ“ใจใงDPใง่งฃใใ€‚ใ“ใฎใจใใ€ $i$ ็•ช็›ฎใพใงใฎ้ญ”ๆณ•ใ‚’ไฝฟใ„(ใจใ„ใ†ใ‹ $i$ ็•ช็›ฎใฎ้ญ”ๆณ•ใ‚’ๅˆใ‚ใฆ็นฐใ‚Š่ฟ”ใ—ไฝฟใ†ใ“ใจใซใ—ใฆ)ใ€ $h$ ใฎใƒ€ใƒกใƒผใ‚ธใ‚’ไธŽใˆใŸๆ™‚( $h$ ไปฅไธŠใฏไธ€ๅพ‹ $h$ )ใจใ™ใ‚‹ใ€ $dp[i+1][j+A]$ ใซ้…ใ‚‹ใฎใฏ $dp[i+1][j] + B$ ใงใ‚ใ‚‹ใ€‚ $j$ ใ‚’ๅ†…ใƒซใƒผใƒ—ใซ็ฝฎใใจ้ญ”ๆณ•ใ‚’็„กๅˆถ้™ใซไฝฟใˆใ‚‹ใ“ใจใ‚’่กจ็พใงใใ‚‹ใ€‚ๅ“็‰ฉใ‚’ไธ€ๅ€‹ใ ใ‘ๅŠ ใˆใ‚‹ใƒŠใƒƒใƒ—ใ‚ถใƒƒใ‚ฏDPใฎ $dp[i][j] + B$ ใ‹ใ‚‰ๅผ•ใใจไธŠๆ‰‹ใใ„ใ‹ใชใ„ใ€‚

ABC 154-D

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

ๆœŸๅพ…ๅ€คใฎๅŠ ๆณ•ๆ€งใ‚’ไฝฟใ†ใ€‚

้šฃๆŽฅใ™ใ‚‹Kๅ€‹ใฎใ‚ตใ‚คใ‚ณใƒญใจใ‚ใ‚‹ใฎใงใ€ใ‚ตใ‚คใ‚ณใƒญKๅ€‹ใฎๆœŸๅพ…ๅ€คใฏใ€ใ‚ตใ‚คใ‚ณใƒญใ‚’1ๅ€‹ๅŠ ใˆใฆK+1ๅ€‹ใซใชใฃใŸใ‚‰ใ€ๆœ€ๅพŒใซๅŠ ใˆใŸใ‚ตใ‚คใ‚ณใƒญใฎๆœŸๅพ…ๅ€คใ‚’ๆธ›ใ‚‰ใ™ใ€‚ๆœŸๅพ…ๅ€คใฎๅŠ ๆณ•ๆ€งใ‹ใ‚‰ใ“ใ‚ŒใŒๆˆใ‚Š็ซ‹ใคใ€‚็งปๅ‹•ๅนณๅ‡ใฎๆฑ‚ใ‚ๆ–นใจไธ€็ท’ใงใ‚ใ‚‹ใ€‚

ABC 155-D

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

ๅ›ฐใฃใŸใ‚‰ไบŒๅˆ†ๆŽข็ดขใ€‚

ไบŒๆ•ฐใ‚’ๆ›ธใ‘ใŸ็ตๆžœใŒใ€ๆญฃใ€ใ‚ผใƒญใ€่ฒ ใฎไธ‰้€šใ‚Šใซๅˆ†ใ‘ใฆใ€ $k$ ใ‚’่ถ…ใˆใ‚‹็ฉใŒไฝ•ๅ€‹ใ‚ใ‚‹ใ‹ๅฐบๅ–ใ‚Šๆณ•ใงๆ•ฐใˆไธŠใ’ใ‚‹ใ€‚็ทปๅฏ†ใชๅฎŸ่ฃ…ใŒๅ•ใ‚ใ‚Œใ‚‹ใ€‚

ABC 156-D

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

ไบŒ้ …ๅฎš็†ใซๅฏพใ™ใ‚‹ๅŸบๆœฌ็š„ใช็Ÿฅ่ญ˜ใŒๅ•ใ‚ใ‚Œใ‚‹ใ€‚ใใ‚Œใจใƒ€ใƒ–ใƒชใƒณใ‚ฐใฎไฝฟใ„ใฉใ“ใ‚ใงใ‚ใ‚‹ใ€‚

Nใ‹ใ‚‰0..N้€šใ‚Š้ธใถ็ต„ใฟๅˆใ‚ใ›ใฎ็ทๅ’Œใฏ $2^N-1$ ้€šใ‚Šใงใ‚ใ‚‹ใ€‚ใชใœใชใ‚‰ $1..N$ ็•ช็›ฎใฎ่ฆ็ด ใ‚’้ธใถใ‹้ธใฐใชใ„ใ‹ใ‚’ใ€ๅ…จ่ฆ็ด ใซใคใ„ใฆ็‹ฌ็ซ‹ใซๆ•ฐใˆไธŠใ’ใ‚‹ใ“ใจใจๅŒใ˜ใ ใ‹ใ‚‰ใงใ‚ใ‚‹ใ€‚1ๅผ•ใใฎใฏไฝ•ใ‚‚้ธใฐใชใ„ใ‚ฑใƒผใ‚นใ‚’้™คใใŸใ‚ใ ใ€‚

nใŒ $10^9$ ใจๅคงใใ„ใฎใง $2^n$ ใ‚’็นฐใ‚Š่ฟ”ใ—ๆฑ‚ใ‚ใ‚‹ใจ็ต‚ใ‚ใ‚‰ใชใ„ใ€‚ $2^{i+j} = 2^i * 2^j$ ใชใฎใง $i$ ใจ $j$ ใ‚’2ใฎในใไน—ใซใคใ„ใฆๆฑ‚ใ‚ใ‚‹ใจๅทจๅคงใชnใงใ‚‚ $2^n : mod : 1000000007$ ใŒๆฑ‚ใพใ‚‹ใ€‚ $2^{0..32} : mod : 1000000007$ ใฏใƒ€ใƒ–ใƒชใƒณใ‚ฐใงๆฑ‚ใ‚ใ‚‹ใ€‚ใ‚ณใƒผใƒ‰ใ‚นใƒ‹ใƒšใƒƒใƒˆใ‚’ๆ›ธใ„ใฆใƒ†ใ‚นใƒˆใ—ใฆใŠใใจใ‚ˆใ„ใ ใ‚ใ†ใ€‚

ใ“ใ“ใพใงใใŸใ‚‰ $2^n - {}_n C_a - {}_n C_b$ ใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ABC 157-D

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

Union-findๆœจใ‚’็Ÿฅใฃใฆใ„ใ‚‹ใจ่งฃใ‘ใ‚‹ใ€็Ÿฅใ‚‰ใชใ„ใจ่งฃใ‘ใชใ„ใ‹ๅฎŸ่ฃ…ใŒๅคงๅค‰ใชๅ•้กŒใงใ‚ใ‚‹ใ€‚

ๅ‹้”ใฎๅ‹้”ใฏๅ‹้”ใจใ„ใ†ๆŽจ็งป้–ขไฟ‚ใฏใ€ๅ‹้”้–ขไฟ‚ใ‚’ใ‚ฐใƒฉใƒ•ใง่กจ็พใ—ใŸๆ™‚ใฎ้€ฃ็ตๆˆๅˆ†ใงใ‚ใ‚‹ใ€‚ใชใฎใงใใ‚Œใžใ‚Œใฎ้€ฃ็ตๆˆๅˆ†ใฎ้ ‚็‚นๆ•ฐใ‹ใ‚‰ใ€ๆ—ขใซๅ‹้”ใงใ‚ใ‚‹้–ขไฟ‚ใฎๆ•ฐใจใ€ ๅŒใ˜้€ฃ็ตๆˆๅˆ†ใง ใƒ–ใƒญใƒƒใ‚ฏใ—ใฆใ„ใ‚‹้–ขไฟ‚ใฎๆ•ฐใ‚’ๅผ•ใใ€‚็•ฐใชใ‚‹้€ฃ็ตๆˆๅˆ†ใงใƒ–ใƒญใƒƒใ‚ฏใ—ใฆใ„ใ‚‹้–ขไฟ‚ใฏใ€ๅ‹้”ใฎๅ‹้”ใฏๅ‹้”ใจใ„ใ†ๆŽจ็งป้–ขไฟ‚ใฏๆˆใ‚Š็ซ‹ใŸใชใ„ใฎใงๅผ•ใ‹ใชใ„ใ€‚

ABC 158-D

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

ใ‚ณใƒฌใ‚ฏใ‚ทใƒงใƒณใ‚’ๅ่ปขใ™ใ‚‹ใฎใฏใ‚ณใ‚นใƒˆใŒ้ซ˜ใ„ใŒใ€ๅ่ปขใ—ใŸใจใฟใชใ™ใฎใƒ•ใƒฉใ‚ฐ1ๅ€‹ๆ›ธใๆ›ใˆใ‚‹ใ ใ‘ใงใ‚ใ‚‹ใ€‚ๆ‰‹ๅ…ƒใฎๅˆ—ใซๅฏพใ—ใฆใ€

  • ๆ‰‹ๅ…ƒใฎๅˆ—ใŒๅ่ปขใ—ใฆใ„ใชใ„ใจใใซๅ…ˆ้ ญใซ่ฟฝๅŠ ใ™ใ‚‹ใฎใฏใ€ๅˆ—ใฎๅ…ˆ้ ญใซ่ฟฝๅŠ ใ™ใ‚‹
  • ๆ‰‹ๅ…ƒใฎๅˆ—ใŒๅ่ปขใ—ใฆใ„ใชใ„ใจใใซๆœซๅฐพใซ่ฟฝๅŠ ใ™ใ‚‹ใฎใฏใ€ๅˆ—ใฎๆœซๅฐพใซ่ฟฝๅŠ ใ™ใ‚‹
  • ๆ‰‹ๅ…ƒใฎๅˆ—ใŒๅ่ปขใ—ใฆใ„ใ‚‹ใจใใซๅ…ˆ้ ญใซ่ฟฝๅŠ ใ™ใ‚‹ใฎใฏใ€ๅˆ—ใฎๆœซๅฐพใซ่ฟฝๅŠ ใ™ใ‚‹
  • ๆ‰‹ๅ…ƒใฎๅˆ—ใŒๅ่ปขใ—ใฆใ„ใ‚‹ใจใใซๆœซๅฐพใซ่ฟฝๅŠ ใ™ใ‚‹ใฎใฏใ€ๅˆ—ใฎๅ…ˆ้ ญใซ่ฟฝๅŠ ใ™ใ‚‹

ๅ่ปขใ—ใฆใ„ใ‚‹ใ‹ๅฆใ‹ใ€ๅ…ˆ้ ญใจๆœซๅฐพใฎใฉใกใ‚‰ใซ่ฟฝๅŠ ใ™ใ‚‹ใ‹ ifๆ–‡ใง4้€šใ‚Šใซๅˆ†ใ‘ใฆใ‚‚ใ„ใ„ใ—ใ€xorใ‚’ๅ–ใฃใฆ2้€šใ‚Šใซใพใจใ‚ใฆใ‚‚ใ‚ˆใ„ใ€‚

ABC 159-D

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

ๅ…จ้ƒจใฎ็ต„ใฟๅˆใ‚ใ›ใฎๅ€‹ๆ•ฐใ‚’ๆŒ™ใ’ใฆใ‹ใ‚‰ใ€ใ‚ใ‚‹็จฎใฎ็ต„ใฟๅˆใ‚ใ›ใฎๅ€‹ๆ•ฐใ‚’ๅผ•ใใ€‚

ๆ•ดๆ•ฐ $x$ ใŒๆ›ธใ‹ใ‚ŒใŸใƒœใƒผใƒซใŒ $m$ ๅ€‹ใ‚ใ‚‹ใชใ‚‰ใ€ใƒœใƒผใƒซใฎ้ธใณๆ–นใฏ $((m+1) * m) / 2$ ้€šใ‚Šใงใ‚ใ‚‹ใ€‚ๆ•ดๆ•ฐ $x$ ใ‹ใ‚‰ๅ€‹ๆ•ฐ $m$ ใธใฎ้€ฃๆƒณ้…ๅˆ—ใซใ—ใฆใŠใ‘ใฐ $x$ ใฎๅ€คๅŸŸใซใคใ„ใฆๆ‚ฉใพใชใใฆๆธˆใ‚€ใ€‚

ๅพŒใฏใƒœใƒผใƒซใŒไธ€ๅ€‹ ($A_1 .. A_N$) ๆธ›ใฃใŸใ‚‰ใ€ใใฎๅˆ†ใƒœใƒผใƒซใฎ้ธใณๆ–นใŒๆธ›ใ‚‹ใฎใงใใฎๅ€คใ‚’่จˆ็ฎ—ใ™ใ‚‹ใ€‚

ABC 160-D

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

ๅ…ฅๅŠ›ใ‚ตใ‚คใ‚บใ‹ใ‚‰่จˆ็ฎ—้‡ใ‚’่ฆ‹ๅˆ‡ใ‚‹ใ“ใจใŒๅคงไบ‹ใงใ‚ใ‚‹ใ€‚

้ ‚็‚นใฎไฝ็ฝฎใ‚’ใ€Xใ‚ˆใ‚Šๅณใ€X-Y้–“ใ€Yใ‚ˆใ‚Šๅทฆใซๅ ดๅˆๅˆ†ใ‘ใ—ใฆ่งฃใใจใจใฆใ‚‚ใ‚ใ‚“ใฉใใ•ใ„ใ€‚BFSใง่ท้›ขใ‚’ๆฑ‚ใ‚ใ‚‹ใจ็ฐกๅ˜ใงใ‚ใ‚‹ใ€‚ใ“ใ†ใ„ใ†ใจใใฏ $N$ ใŒไบŒๅƒใ—ใ‹ใชใ„ใ“ใจใ‹ใ‚‰ใ€ๅ„้ ‚็‚นใ‚’ๅ‡บ็™บ็‚นใจใ—ใฆ็ทๅฝ“ใŸใ‚ŠใงTLEใ—ใชใ„ใจไบˆๆƒณใงใใ‚‹ใ€‚

่พบใฎ้•ทใ•ใŒๅ›บๅฎšใฎใจใใซBFSใง่ท้›ขใ‚’ๆฑ‚ใ‚ใ‚‹ๆ–นๆณ•ใฏๆ—ขๅ‡บใชใฎใง็œ็•ฅใ™ใ‚‹ใ€‚

ABC 160-E

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

std::vector::resize() ใ‚’ไฝฟใ†

ๅ•้กŒๆ–‡ใ‹ใ‚‰ X<A, Y<B ใชใฎใงๅ ดๅˆๅˆ†ใ‘ใ‚’ๆธ›ใ‚‰ใ›ใ‚‹ใ€‚็„ก่‰ฒใฎใƒชใƒณใ‚ดใ‚’่ฃœๅ……ใ—ใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„็Šถๆณใฏใชใใ€็ฝฎใๆ›ใˆใ‚‹ใ ใ‘ใงใ‚ˆใ„ใ“ใจใŒๅˆ†ใ‹ใ‚‹ใ€‚ใƒชใƒณใ‚ดใ‚’่‰ฒๅˆฅใซใ€็พŽๅ‘ณใ—ใ•ใฎ้™้ †ใซใ‚ฝใƒผใƒˆใ—ใฆใ€่ตคใ„ใƒชใƒณใ‚ดใฏๅ…ƒใ€… $X$ ๅ€‹ใ ใฃใŸใจ่€ƒใˆใ‚‹ใจๆฅฝใงใ‚ใ‚‹ใ€‚ std::vector::resize() ใฏไฝ™ๅˆ†ใช่ฆ็ด ใ‚’ๅˆ‡ใ‚Šๆจใฆใ‚‹ใฎใงไพฟๅˆฉใงใ‚ใ‚‹ใ€‚

็ฝฎใๆ›ใˆใ‚‹ใชใ‚‰ๆœ€ใ‚‚ใŠใ„ใ—ใใชใ„่ตคใจ็ท‘ใฎใƒชใƒณใ‚ดใ‚’ใ€ๆœ€ใ‚‚็พŽๅ‘ณใ—ใ„ใƒชใƒณใ‚ดใซ็ฝฎใๆ›ใˆใ‚Œใฐใ‚ˆใ„ใ ใ‚ใ†ใ€‚ใ“ใ‚Œใฏๅฐบๅ–ใ‚Šๆณ•ใงใงใใ‚‹ใ€‚่ตคใจ็ท‘ใฎใƒชใƒณใ‚ดใ‚’ใ™ในใฆ็ฝฎใๆ›ใˆ็ต‚ใ‚ใฃใŸใ‚‰ใ‚‚ใ†ใงใใ‚‹ใ“ใจใฏใชใ„(ใ‚‚ใฃใจ็พŽๅ‘ณใ—ใ„็„ก่‰ฒใฎใƒชใƒณใ‚ดใซ็ฝฎใๆ›ใˆใŸใฏใšใ ใ‹ใ‚‰)ใฎใงใ€ๅฐบๅ–ใ‚Šๆณ•ใฎใ‚คใƒณใƒ‡ใƒƒใ‚ฏใ‚นใซๆฐ—ใ‚’ไป˜ใ‘ใ‚‹ใ€‚

ABC 161-170

ABC 161-D

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

ใ“ใ‚Œใ‚‚ 160-DใจๅŒๆง˜ใซใ€ๅ…ฅๅŠ›ใ‚ตใ‚คใ‚บใ‹ใ‚‰่จˆ็ฎ—้‡ใ‚’่ฆ‹ๅˆ‡ใ‚‹ใ“ใจใŒๅคงไบ‹ใงใ‚ใ‚‹ใ€‚

ๅ†ๅธฐใจใƒกใƒขๅŒ–ใงๅ–ใ‚Šใ†ใ‚‹็ต„ใฟๅˆใ‚ใ›ใ‚’็ดฏ่จˆใ™ใ‚‹ใจใ‚ใ‚“ใฉใใ•ใใ†ใงใ‚ใ‚‹ใ€‚ใ—ใ‹ใ—10้€ฒๆ•ฐ5ๆกใ—ใ‹ใชใ„ใฎใ ใ‹ใ‚‰ใ€ไธŠใฎๆกใซไธ‹ใฎๆก(0ใซใฏ0ใจ1ใ€9ใซใฏ8ใจ9ใ€ใใ‚Œไปฅๅค–ใฎ $i$ ใฏ $i-1, i, i+1$ ใ‚’ใใฃใคใ‘ใฆใ‚‚ๅ…จๆŽข็ดขใงใใ‚‹ใ€‚

ABC 162-D

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

ใ“ใ‚Œใ‚‚ 160-D, 161-DใจๅŒๆง˜ใซใ€ๅ…ฅๅŠ›ใ‚ตใ‚คใ‚บใ‹ใ‚‰่จˆ็ฎ—้‡ใ‚’่ฆ‹ๅˆ‡ใ‚‹ใ“ใจใŒๅคงไบ‹ใงใ‚ใ‚‹ใ€‚้…ๅˆ—ใฎๆทปใˆๅญ—ใŒใฏใฟๅ‡บใ•ใชใ„ใ‚ˆใ†ใซๅ…จๆŽข็ดขใ™ใ‚Œใฐใ‚ˆใ„ใ€‚

ABC 163-D

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

ๅทจๅคงใชๆ•ฐ $10^{100}$ ใŒๆ„ๅ‘ณใ™ใ‚‹ใฎใฏใ€ๆ•ฐใ‚’ไฝ•ๅ€‹่ถณใ—ใŸใ‹ใŒๅ’Œใ‹ใ‚‰ๅŒบๅˆฅใงใใ‚‹ใ“ใจใงใ‚ใ‚‹ใ€‚ใ“ใฎ็ฟ’ๆ…ฃใ‚’่ฆšใˆใฆใŠใใ€‚

ใใ‚Œใ•ใˆใ‚ใ‹ใ‚Œใฐใ€ $0..N$ ใ‹ใ‚‰ $K$ ๅ€‹้ธใ‚“ใ ใจใใซใ€ๅ’Œใจใ—ใฆ่กจ็พใงใใ‚‹ๆ•ฐใจใงใใชใ„ๆ•ฐใ‚’ๆฑ‚ใ‚ใ‚Œใฐใ‚ˆใ„ใ€‚

  • ๅ’Œใฎๆœ€ๅฐๅ€คใฏไฝ•ใ‚‚้ธใฐใชใ„0ใ€ๆœ€ๅคงๅ€คใฏๅ…จ้ƒจ้ธใถ $sum(i=0..{N})$ ใงใ‚ใ‚‹ใ€‚
  • $s = sum(i=0..{K-1})$ ใŒๆœ€ๅฐๅ€คใชใฎใงใ€ใใ‚Œใ‚ˆใ‚Šๅฐใ•ใ„ๆ•ฐ $S$ ๅ€‹ใฏๅ’Œใซใชใ‚Šใˆใชใ„ใ€‚
  • ่ถณใ™ๆ•ฐใ‚’ใใ‚Œใžใ‚Œ $N-i$ ใจใ™ใ‚Œใฐๅทฆๅณๅ่ปขใ—ใฆใ€ $sum(i=0..{N})$ ใพใงใฎ $S$ ๅ€‹ใฏๅ’Œใซใชใ‚Šใˆใชใ„ใ€‚
  • ใใ‚Œไปฅๅค–ใฎๅ’Œใฏ่กจ็พๅฏ่ƒฝใงใ‚ใ‚‹(ๅ’Œใซใ™ใ‚‹ๆ•ฐใฎ้›†ๅˆใซๅฏพใ—ใฆใ€ใ‚ใ‚‹ๆ•ฐใจใใ‚Œใ‚ˆใ‚Š1ๅคšใ„ๆ•ฐใ‚’ไบคๆ›ใ™ใ‚Œใฐใ‚ˆใ„ใ€‚ใ“ใฎใ‚ˆใ†ใชๆ•ฐใฏๅฟ…ใšใฟใคใ‹ใ‚‹)

ABC 164-D

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

  • ้‰„ๅ‰‡ๆœฌใฎใ€Œ8.6 ๆ–‡ๅญ—ๅˆ—ใฎใƒใƒƒใ‚ทใƒฅใ€ๅ•้กŒ A56ใ‚’็Ÿฅใฃใฆใ„ใ‚‹ใจ่งฃใ‘ใ‚‹
  • ็ดฏ็ฉๅ’Œใ‹ใ‚‰้ƒจๅˆ†ๅˆ—ใฎ็ทๅ’Œใ‚’ๅ–ใ‚‹ๆ–นๆณ•ใŒไฝฟใˆใ‚‹

ๆ–‡ๅญ—ๅˆ—ใ‹ใ‚‰้ƒจๅˆ†ๆ–‡ๅญ—ๅˆ—ใ‚’ๅ–ใฃใฆใ„ใใจใใซใ€้ƒจๅˆ†ๆ–‡ๅญ—ๅˆ—ใ‹ใ‚‰ๅพ—ใ‚‰ใ‚Œใ‚‹ใƒใƒƒใ‚ทใƒฅใฎใ‚ˆใ†ใชๆƒ…ๅ ฑใ‚’ๅพ—ใ‚‹ใ€‚ใ‚ใ‚‹ๆ•ฐใŒ2019ใงๅ‰ฒใ‚Œใ‚‹ใ‹ใฉใ†ใ‹ใฏใ€2019ใฎใ™ในใฆใฎ็ด ๅ› ๆ•ฐ(3ใจ673)ใงๅ‰ฒใ‚Œใ‚‹ใ‹ใฉใ†ใ‹ใจๅŒใ˜ใงใ‚ใ‚‹ใ€‚ใคใพใ‚Š3ใงๅ‰ฒใฃใŸไฝ™ใ‚Šใจ673ใงๅ‰ฒใฃใŸไฝ™ใ‚Šใ‚’ใ€ๆ–‡ๅญ—ๅˆ—ใฎๆœซๅฐพใ‹ใ‚‰ๅ…ˆ้ ญใซๅ‘ใ‹ใฃใฆๅ–ใฃใฆใ„ใใ€‚่ชฌๆ˜Žใฎ้ƒฝๅˆไธŠใ€ๆ–‡ๅญ—ๅˆ—ใ‚’ std::reverse ใง้€†้ †ใซใ—ใฆๆœ€ใ‚‚ไธ‹ใฎๆกใ‚’ๆ–‡ๅญ—ๅˆ—ใฎๅ…ˆ้ ญใจใ™ใ‚‹ใ€‚

...abcdef ใจๆกใŒใŸใใ•ใ‚“ใ‚ใ‚‹ๆ•ดๆ•ฐใฎใ†ใกใ€ไธ‹ไฝ1,2,3...ๆกใ‚’673ใงๅ‰ฒใฃใŸไฝ™ใ‚Š(mod 673)ใซใคใ„ใฆ่€ƒใˆใ‚‹ใ€‚3ใงๅ‰ฒใฃใŸไฝ™ใ‚Šใ‚‚ๅŒๆง˜ใงใ‚ใ‚‹ใ€‚

  • f mod 673ใฏใ€ๅฎŸ้š›ใซๅ‰ฒใ‚Œใฐๅˆ†ใ‹ใ‚‹
  • ef mod 673ใฏใ€(e*10 + (f mod 673)) mod 673
  • def mod 673ใงๅ‰ฒใฃใŸไฝ™ใ‚Šใฏใ€(d*100 + (ef mod 673)) mod 673
  • cdef mod 673ใงๅ‰ฒใฃใŸไฝ™ใ‚Šใฏใ€(c*1000 + (def mod 673)) mod 673

ใ“ใ†ใ—ใฆๆœ€ไธŠไฝใฎๆกใพใงใ€ๆœ€ใ‚‚ไธ‹ใฎๆกใ‹ใ‚‰้€ฃ็ถšใ™ใ‚‹ๆกใ‚’673ใงๅ‰ฒใฃใŸไฝ™ใ‚Šใ‚’่จˆ็ฎ—ใงใใ‚‹ใ€‚10, 100, ... ใจ $10^n$ ใ‚’673ใงๅ‰ฒใฃใŸไฝ™ใ‚Šใ‚‚ไฝตใ›ใฆ่จˆ็ฎ—ใ—ใฆใŠใใ€‚

ๆฌกใซไธ‹ใฎๆกใ‹ใ‚‰้ †ใซ0ใซ็ฝฎใๆ›ใˆใฆใ„ใใ€‚

  • ๆœ€ๅˆใฏไฝ•ใ‚‚็ฝฎใๆ›ใˆใชใ„ใ€‚ใ“ใฎใจใf, ef, def, ... ใ‚’673ใงๅ‰ฒใ‚Šๅˆ‡ใ‚Œใ‚‹ใ‹ใฉใ†ใ‹ใฏๆ—ขใซ่ชฟในใฆใ‚ใ‚‹
  • ๆœ€ไธ‹ไฝใฎๆกใ‚’0ใซ็ฝฎใๆ›ใˆใ‚‹ใ€‚ไพ‹ใˆใฐcdefใ‚’cde0ใซ็ฝฎใๆ›ใˆใ‚‹ใ€‚cde0ใŒ673ใงๅ‰ฒใ‚Šๅˆ‡ใ‚Œใ‚‹ใ‹ใฉใ†ใ‹ใฏใ€ $(cdef - f) : mod : 637 \equiv 0$ ใคใพใ‚Š $f$ ใ‚’673ใงๅ‰ฒใฃใŸไฝ™ใ‚Šใจ $cdef$ ใ‚’673ใงๅ‰ฒใฃใŸไฝ™ใ‚ŠใŒ็ญ‰ใ—ใ„ใจใ„ใ†ใ“ใจใงใ‚ใ‚‹ใ€‚ใ“ใ“ใง f mod 7 ใ‚’ๅ›บๅฎšใ—ใฆใ€f mod 7 ใจ็ญ‰ใ—ใ„ f, ef, def, ... ใ‚’ๆ•ฐใˆใ‚Œใฐใ€้กŒๆ„ใฎ็ทๆ•ฐใฎไธ€้ƒจใŒๆฑ‚ใพใ‚‹ใ€‚
  • ไธ€่ˆฌ็š„ใซใฏใ€ไธ‹ใฎๆกใ‹ใ‚‰้€ฃ็ถšใ™ใ‚‹ $i (\geq 0)$ ๅ€‹ใฎ0ใ‚’็ฝฎใๆ›ใˆใ‚‹ใ€‚ไธ‹iๆก mod 7 ใจ็ญ‰ใ—ใ„ f, ef, def, ... ใ‚’ๆ•ฐใˆใ‚Œใฐใ€้กŒๆ„ใฎ็ทๆ•ฐใŒๆฑ‚ใพใ‚‹ใ€‚ไธ‹iๆกใฎๅ€คใฏๅˆๆœŸๅ€คใ‚’0ใจใ—ใ€ $i$ ใ‚’ๆ›ดๆ–ฐใ™ใ‚‹ใ”ใจใซ $10^{i}$ * iๆก็›ฎใฎๆ•ฐๅญ— mod 673 ใ‚’่ถณใ™ใ€‚
  • f, ef, def, ... mod 673 ใจ f, ef, def, ... mod 3 ใ‹ใ‚‰ใ€ f, ef, def, ... mod 2019 ใŒๆฑ‚ใพใ‚‹ใ€‚ใ“ใ‚Œใฏ $i$ ใจ้–ขไฟ‚ใชใ„ใฎใงใ€mod 2019ใ‚’ใ‚ญใƒผใจใ—ใฆ่ฉฒๅฝ“ใ™ใ‚‹ไฝ™ใ‚Šใฎๅ‡บ็พๅ›žๆ•ฐใ‚’ไธ€ๅบฆๆ•ฐใˆใฆ้€ฃๆƒณ้…ๅˆ—ใซไฟๅญ˜ใ—ใฆใŠใใ€‚

ใ“ใฎ่€ƒใˆๆ–นใฏใ€้ƒจๅˆ†ๅˆ—ใฎ็ทๅ’Œใ‚’ๆฑ‚ใ‚ใ‚‹ใฎใซ็ดฏ็ฉๅ’Œใ‚’ไฝฟใ†ๆ–นๆณ•ใจใ‚ˆใไผผใฆใ„ใ‚‹ใ€‚ๅ’Œใ‚’ไฝ™ใ‚Šใซ็ฝฎใๆ›ใˆใŸใ ใ‘ใชใฎใงใ€‚

Mod 3ใจmod 673ใฏACLใ‚’ไฝฟใ†ใจๆ›ธใใ‚„ใ™ใ„ใ€‚

#include <atcoder/all>
using ModInt3 = atcoder::static_modint<3>;
using ModInt673 = atcoder::static_modint<673>;

ABC 165-C

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

$N$ ใŒๅฐใ•ใ„ใฎใงDFSใฎๅ…จๆŽข็ดขใง่กŒใ‘ใ‚‹ใ€‚

ABC 165-D

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

็›ด่ฆณ็š„ใซใฏใ€Aใ‚’ๅข—ใ‚„ใ™ใปใฉBใงๅ‰ฒใฃใŸไฝ™ใ‚ŠใŒๆบœใพใฃใฆใ„ใฃใฆใ€Bใซใชใ‚‹ใจไฝ™ใ‚ŠใŒ0ใซๆˆปใ‚‹ใ€ใจใ„ใ†ใ“ใจใงใ‚ใ‚‹ใ€‚ $A &lt; B$ ใ ใจๆˆปใ‚‰ใชใ„ใฎใงๅ…ฅๅŠ›ๆกไปถใซๆฐ—ใ‚’ไป˜ใ‘ใ‚‹ใ€‚

ABC 166-D

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

ไธ‰ๆฌกไปฅไธŠใฎๅคš้ …ๅผใฎๅ•้กŒใฏใ€nๆกๆ นใ‚’ๅ–ใ‚‹ใจๅค‰ๆ•ฐใฎๅ–ใ‚‹้ ˜ๅŸŸใŒใใ‚Œใปใฉๅคงใใใชใ„ใฎใง็ทๅฝ“ใŸใ‚Šใงใใ‚‹ใ€‚

$A^5-B^5 = (A-B)(A^4+A^3B+A^2B^2+AB^3+B^4)$ ใชใฎใงใ€ $X$ ใฎ็ด„ๆ•ฐใ‚’ๆฑ‚ใ‚ใฆ็ทๅฝ“ใŸใ‚Šใ™ใ‚Œใฐใ„ใ„ใ€‚ $A-B$ ใฏ็ด„ๆ•ฐใ‚’็ทๅฝ“ใŸใ‚Šใ— $A$ ใ‚’ๆฑบใ‚ๆ‰“ใกใ—ใฆ็ทๅฝ“ใŸใ‚Šใ™ใ‚Œใฐใ„ใ„ใ€‚ $X^5-(X-1)^5 &gt; 5X^4$ ใชใฎใงใ€ $A$ ใฏไธ‹้™ใŒ0ใ€ไธŠ้™ใฏ ${5*x}^{1/4}$ ใ‚‚ใ‚ใ‚Œใฐๅๅˆ†ใ ใ‚ใ†ใ€‚

็ด„ๆ•ฐใ‚’ๆฑ‚ใ‚ใ‚‹ใฏ้ ปๅ‡บใชใฎใงใ‚ณใƒผใƒ‰ใ‚นใƒ‹ใƒšใƒƒใƒˆใ‚’ๆ›ธใ„ใฆใŠใใ€‚ๅนณๆ–นๆ•ฐใฎ็ด„ๆ•ฐใ‚’ไบŒๅบฆๆ•ฐใˆใฆใ—ใพใ„ใŒใกใงใ‚ใ‚‹ใ€‚

ABC 166-E

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

็ตถๅฏพๅ€คใฏ้ †ๅบใ‚’ๅ›บๅฎšใ™ใ‚Œใฐๅค–ใ›ใ‚‹ใ€‚

็ต„ใฟๅˆใ‚ใ›ใ‚’ๅˆ—ๆŒ™ใ™ใ‚‹ใฎใงใ€ไธ€่ˆฌๆ€งใ‚’ๅคฑใ‚ใš $A_i, A_j$ (i<j) ใชใƒšใ‚ขใ ใ‘่€ƒใˆใ‚Œใฐใ‚ˆใ„ใ€‚ๅฎšๅผๅŒ–ใ™ใ‚‹ใจไปฅไธ‹ใฎใ‚ˆใ†ใซๅคงๅค‰ใ ใŒใ€ๆ‰‹ใ‚’ๅ‹•ใ‹ใ™ใจไฝ•ใจใชใใ‚ใ‹ใฃใฆใใ‚‹ใ€‚

้กŒๆ„ใ‹ใ‚‰ $A_1 + A_2 = 1, A_1 + A_3 = 2, ...$ ใจ่งฃใ‚‹ใ€‚ใ“ใ‚Œใ‚’ $A_1, A_2, ...$ ใซใคใ„ใฆๆ•ฐใˆใ‚ใ’ใ‚‹ใจ $O(N^2)$ ใชใฎใงTLEใ™ใ‚‹ใŒใ€ $A_1$ ใ‚’ $A_2$ ใซๅ–ใ‚Šๆ›ใˆใ‚‹ๆ–นๆณ•ใŒใ‚ใ‚Šใใ†ใงใ‚ใ‚‹ใ€‚

ๅฎŸ้š›ใงใใ‚‹ใฎใงใ‚ใ‚‹ใ€‚ $A_i + A_j = j-i \Leftrightarrow A_j - j = -(A_i + i)$ ใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆ $A_j - j : for : j=1..N$ ใŒไฝ•ๅ€‹ใ‚ใ‚‹ใ‹ๆฑ‚ใ‚ใฆ้€ฃๆƒณ้…ๅˆ—ใซใ„ใ‚ŒใฆใŠใใ€ $-(A_i + i) : for : i..N$ ใŒใ„ใใคใ‚ใ‚‹ใ‹้€ฃๆƒณ้…ๅˆ—ใงๅผ•ใ„ใฆ็ทๅ’Œใ‚’ๆฑ‚ใ‚ใ‚‹ใจ็ญ”ใˆใŒๅ‡บใ‚‹ใ€‚

ABC 168-D

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

้ƒจๅฑ‹1ใ‹ใ‚‰ไป–ใฎ้ƒจๅฑ‹ใฎ่ท้›ขใ‚’BFSใงๆฑ‚ใ‚ใ‚‹ใ€‚ๆ–นๆณ•ใฏๆ—ขๅ‡บใฎ้€šใ‚Šใ€‚

ABC 169-D

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

็ด ๅ› ๆ•ฐๅˆ†่งฃใ—ใฆใ€็ด ๆ•ฐpใง1ๅ›žใ€2ๅ›žใ€3ๅ›ž... ๅ‰ฒใฃใฆใฟใ‚‹ใ€‚็ด ๅ› ๆ•ฐใจใใฎๆ•ฐใ‚’ใ‚ณใƒผใƒ‰ใ‚นใƒ‹ใƒšใƒƒใƒˆใ‚’ๆ›ธใ„ใฆใŠใใ€‚

ABC 170-D

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

ไปปๆ„ใฎ็ต„ใฟๅˆใ‚ใ›ใ‚’ๆ•ฐใˆไธŠใ’ใ‚‹ใฎใซใ€ใ‚ฝใƒผใƒˆใ—ใฆใ‚‚ไธ€่ˆฌๆ€งใ‚’ๅคฑใ‚ใชใ„ใ ใ‚ใ†ใ‹ใ€‚

ๅฐใ•ใชๆ•ฐใงใใ‚Œใ‚ˆใ‚Šๅคงใใชๆ•ฐใ‚’ๅ‰ฒใ‚‹ใ“ใจใฏใงใใชใ„ใ€‚ใ‚ˆใฃใฆๆ˜‡้ †ใซใ‚ฝใƒผใƒˆใ—ใฆใ€่‡ชๅˆ†ใ‚ˆใ‚Šๅคงใใชๆ•ฐใงๅ‰ฒใ‚Šๅˆ‡ใ‚Œใ‚‹ใ‹ใฉใ†ใ‹็ขบใ‹ใ‚ใ‚‹ใ€‚ใใฎใพใพๅฎŸ่ฃ…ใ™ใ‚‹ใจ $O(N^2)$ ใซใชใฃใฆใ—ใพใ†ใฎใงใ€็ด„ๆ•ฐใŒๆ—ขใซๅ‡บ็พใ—ใŸใ‹ใฉใ†ใ‹่ชฟในใ‚‹ใ€‚

ใชใŠๅŒใ˜ๅ€คใฎๆ•ฐใŒ่ค‡ๆ•ฐใ‚ใ‚‹ๅ ดๅˆใฏไบ’ใ„ใซๅ‰ฒใ‚Šๅˆ‡ใ‚Œใ‚‹ใฎใงใ€็ญ”ใˆใฎๅ›žๆ•ฐใซใฏๅซใ‚ใชใ„ใ€‚

ABC 171-180

ABC 171-D

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

่ฆ็ด ใŒไฝ•ๅ€‹ใ‚ใ‚‹ใ‹ใฏๆฐ—ใซใ—ใชใ„ใ€‚

ใชใฎใง $B_i$ ใŒไฝ•ๅ€‹ใ‚ใ‚‹ใ‹ใ‚’้€ฃๆƒณ้…ๅˆ—ใง็ฎก็†ใ™ใ‚‹ใ€‚ใ‚ฏใ‚จใƒชใ”ใจใซใ€ $B_i$ ใŒnๅ€‹ใ‚ใ‚‹ใชใ‚‰ใ€ $C_i$ ใ‚’nๅ€‹่ฟฝๅŠ ใ—ใฆ $B_i$ ใ‚’nๅ€‹ๅ‰Š้™คใ™ใ‚‹ใ€‚

ABC 172-C

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

Aใ‚’ใ‹ใ‚‰ไฝ•ๅ†Š่ชญใ‚€ใ‹ๆฑบใ‚ใŸใ‚‰ใ€Bใ‹ใ‚‰ๆœ€ๅคงไฝ•ๅ†Š่ชญใ‚€ใ‹ใฏไธ€ๆ„ใซๆฑบใพใ‚‹ใฎใงใ€ๅฐบๅ–ใ‚Šๆณ•ใงๆฑ‚ใพใ‚‹ใ€‚

ABC 172-D

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

็ธฆใฎ็‰ฉใ‚’ๆจชใซใ™ใ‚‹ใ€‚

ใ‚ใ‚‹ๆ•ฐใซ็ด„ๆ•ฐใŒไฝ•ๅ€‹ใ‚ใ‚‹ใ‹ใ‚’่ชฟในใ‚‹ใฎใฏๅคงๅค‰ใงใ‚ใ‚‹ใ€‚ใ—ใ‹ใ— $1..N$ ใซ็ด„ๆ•ฐ $i$ ใŒไฝ•ๅ€‹ใ‚ใ‚‹ใ‹ใฏใ€ $\lfloor N/i \rfloor$ ๅ€‹ใจใ™ใใ‚ใ‹ใ‚‹ใ€‚็ธฆๆจชใ‚’ๅ…ฅใ‚Œๆ›ฟใˆใ‚‹ใ ใ‘ใงใ™ใ‚“ใชใ‚Š่งฃใ‘ใ‚‹(็ง่‡ช่บซใฏใ“ใฎ่งฃๆณ•ใ‚’ๆ€ใ„ใคใ‹ใชใ‹ใฃใŸใŒ)ใ€‚

ABC 173-D

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

ใ‚ใ‚Œใ“ใ‚Œๆ‚ฉใ‚€ใ‚ˆใ‚Šใ€ๆ‰‹ใ‚’ๅ‹•ใ‹ใ—ใฆ่ฉฆใ—ใŸๆ–นใŒๆ—ฉใ„ใ€‚

ๆœ€ๅพŒใฎไธ€ไบบใฏ่ชฐใ‹ใซใจใฃใฆๅฟƒๅœฐใ‚ˆใ•ใฏไธŽใˆใชใ„ใฎใงใ€ใƒ•ใƒฌใƒณใƒ‰ใƒชใƒผใ•ใŒๆœ€ๅคงใฎไบบใ‹ใ‚‰้™้ †ๅˆฐ็€ใ™ใ‚‹ใฎใŒใ‚ˆใ„ใจๅˆ†ใ‹ใ‚‹ใ€‚ใฉใ“ใซๅ…ฅใ‚Œใ‚‹ใ‹ใงใ‚ใ‚‹ใŒใ€NใŒๅๅˆ†ๅคงใใ„ใจใใ€ใƒ•ใƒฌใƒณใƒ‰ใƒชใƒผใ•ใŒไธŠไฝไบŒๅใฎ้–“ใซๅ…ฅใ‚Œใ‚Œใฐใใ“ใฎๅฟƒๅœฐใ‚ˆใ•ใŒๆœ€ๅฐใซใชใ‚‹ใ€‚ใคใพใ‚Š N, N-1, N-1, N-2, N-2, ... ใจใชใ‚‹ใ€‚

ABC 174-C

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

$K$ ใŒๅฐใ•ใ„ใฎใงใ€ๅฎŸ้š›ใซๆฑ‚ใ‚ใ‚Œใฐๅˆ†ใ‹ใ‚‹ใ€‚

ABC 174-D

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

้ธๆŠž่‚ขใŒไบŒใคใ‚ใ‚‹ใŒใ€็‰‡ๆ–นใŒใ‚ใ‚Œใฐใ‚‚ใ†็‰‡ๆ–นใฏ่ฆใ‚‰ใชใ„ใจใ„ใ†ใ“ใจใŒใ‚ใ‚‹ใ€‚

RWใฎไธฆใณใฏใ‚ˆใ„ใŒWRใฎไธฆใณใฏใ‚ˆใใชใ„ใฎใงใ€WRใ‚’ๆธ›ใ‚‰ใ›ใฐใ„ใ„ใ€‚ใชใ‚‰ใฐRใ ใ‘ๅทฆใซใšใ‚‰ใฃใจไธฆในใฆใ€Wใ ใ‘ๅณใซใšใ‚‰ใฃใจไธฆใถใ‚ˆใ†ใ€Wใ‚’ๅณใซๅฏ„ใ›ใ‚Œใฐใ„ใ„ใจๅˆ†ใ‹ใ‚‹ใ€‚ใคใพใ‚Šๆœ€ๅทฆใฎWใจๆœ€ๅณใฎRๅ…ฅใ‚Œๆ›ฟใˆใ‚Œใฐใ‚ˆใใ€ใ“ใฎๅ›žๆ•ฐใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ใ“ใ‚Œใฏๅฐบๅ–ใ‚Šๆณ•ใงใงใใ‚‹ใฎใง O(N)ใง่งฃใ‘ใ‚‹ใ€‚

็Ÿณใ‚’ๅ…ฅใ‚Œๆ›ฟใˆใ‚Œใฐ็ฝใ„ใฏ1ใพใŸใฏ2ๆธ›ใ‚‹ใ™ใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใŒใ€็Ÿณใฎ่‰ฒใ‚’ๅค‰ใˆใฆใ‚‚1ใ—ใ‹ๆธ›ใ‚‰ใชใ„ใฎใงใ€็Ÿณใฎ่‰ฒใ‚’ๅค‰ใˆใ‚‹ๆ„ๅ‘ณใฏใชใ„ใ€‚

ABC 175-D

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

่งฃใฎๆ–น้‡ใฏ็ซ‹ใคใŒใ€ๅฎŸ่ฃ…ใŒ้žๅธธใซ่พ›ใ„ใ€‚

ใพใš็Šถๆ…‹้ท็งปใ‚’ใƒซใƒผใƒ—ๆˆๅˆ†ใซๅˆ†่งฃใ™ใ‚‹ใ€‚DFSใงใ‚‚ใ‚ˆใ•ใใ†ใ ใŒใ€union-findๆœจใฎไปฃ่กจๅ…ƒใ‚’ไฝฟใ†ใจ็ฐกๅ˜ใงใ‚ใ‚‹ใ€‚ใใ‚Œใžใ‚Œใฎใƒซใƒผใƒ—ๆˆๅˆ†ใ”ใจใซใ‚นใ‚ณใ‚ขใ‚’ๆฑ‚ใ‚ใฆใ€ใใฎๆœ€ๅคงๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ๅ•้กŒใฏใ‚นใ‚ณใ‚ขใฎๆฑ‚ใ‚ๆ–นใงใ‚ใ‚‹ใ€‚ไธ€ๅ‘จใ™ใ‚‹ใจใ‚นใ‚ณใ‚ขใŒๆญฃใฎๅ€คใซใชใ‚‹ใชใ‚‰ใ€ใงใใ‚‹ใ ใ‘ใŸใใ•ใ‚“ๅ‘จๅ›žใ™ใ‚‹ใ€‚ใใ†ใงใใ†ใงใชใ‘ใ‚Œใฐไธ€ๅ‘จใ—ใชใ‘ใ‚Œใฐใ‚ˆใ„ใ€‚ไธ€ๅ‘จใซๆบ€ใŸใชใ„ๅ ดๅˆใฎใ‚นใ‚ณใ‚ขใฏ่ตท็‚นใ‚’็ต‚็‚นใฎ็ต„ใ‚’็ทๅฝ“ใŸใ‚Šใ—ใฆ $O(N^2)$ ใงๆฑ‚ใพใ‚‹ใ€‚

ใจๆ›ธใใจ็ฐกๅ˜ใซ่ฆ‹ใˆใ‚‹ใŒใ€WAใ—ใชใ„ใ‚ˆใ†ใซๅฎŸ่ฃ…ใ™ใ‚‹ใฎใŒใ‚‚ใฎใ™ใ”ใๅคงๅค‰ใงใ‚ใ‚‹ใ€‚ไบŒๅ‘จๅˆ†ใฎใ‚นใ‚ณใ‚ขใฎ็ดฏ็ฉๅ’Œใ‚’ๆฑ‚ใ‚ใฆใ€ใ™ในใฆใฎ่ตท็‚นใจ้•ทใ•ใ‚’็ทๅฝ“ใŸใ‚Šใ™ใ‚Œใฐใ„ใ„ใฏใšใชใฎใ ใŒใ€ใใ‚Œใ ใ‘ใงใฏใฉใ†ใ—ใฆใ‚‚WAใ‚’ๅ–ใ‚Šๅˆ‡ใ‚Œใชใ„ใ€‚

ABC 176-D

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

ๆ™ฎ้€šใซBFSใง่งฃใ‘ใ‚‹ใ€‚

ใจใ€ๅ…ฌๅผ่งฃ่ชฌใซๆ›ธใ„ใฆใ‚ใ‚‹ใ€‚ใŠใใ‚‰ใใใฎๆ–นใŒๅฎŸ่ฃ…ใŒ็ฐกๅ˜ใชใฎใ ใ‚ใ†ใ€‚็งใฎ่งฃใๆ–นใฏๅฐ‘ใ—ๅ›žใ‚Šใใฉใ„ใŒไปฅไธ‹ใฎ้€šใ‚Šใงใ‚ใ‚‹ใ€‚

  • ใ™ในใฆใฎใƒžใ‚นใ‚’ใ€ใƒฏใƒผใƒ—ใชใ—ใง่กŒใ‘ใ‚‹็ฏ„ๅ›ฒใง้€ฃ็ตๆˆๅˆ†ๅˆ†่งฃใ™ใ‚‹ใ€‚Union-findๆœจใ‚’ไฝฟใ†ใจใงใใ‚‹ใ€‚
  • ้€ฃ็ตๆˆๅˆ†ใ‚’้ ‚็‚นใ€ใƒฏใƒผใƒ—ใง่กŒใ‘ใ‚‹้€ฃ็ตๆˆๅˆ†ใ‚’่พบใจใ™ใ‚‹ใ‚ฐใƒฉใƒ•ใ‚’ๆง‹ๆˆใ™ใ‚‹ใ€‚้ ‚็‚น็•ชๅทใฏ้€ฃ็ตๆˆๅˆ†ใฎไปฃ่กจๅ…ƒ( $x + y * 1000 $ ใงใ„ใ„)ใ€ใƒฏใƒผใƒ—ใง่กŒใ‘ใ‚‹ใ‹ใฉใ†ใ‹ใฏๅ„้ ‚็‚นใ‹ใ‚‰25้€šใ‚Š่ฉฆใ›ใฐใ‚ˆใ„ใ€‚ๅŒไธ€้€ฃ็ตๆˆๅˆ†ๅŒๅฃซใ‚’่พบใงใคใชใŒใชใ„ใ‚ˆใ†ใซๆณจๆ„ใ™ใ‚‹ใ€‚
  • ใ“ใฎใ‚ฐใƒฉใƒ•ใซใคใ„ใฆใ€ๅ‡บ็™บ็‚นใฎ้€ฃ็ตๆˆๅˆ†ใ‹ใ‚‰็›ฎ็š„ๅœฐใฎ้€ฃ็ตๆˆๅˆ†ใพใงใซ็ตŒ็”ฑใ™ใ‚‹ใ€ๆœ€็Ÿญ่ท้›ขใคใพใ‚Šๆœ€ๅฐใฎ่พบใฎๆ•ฐใ‚’BFSใงๆฑ‚ใ‚ใ‚‹ใ€‚ๅˆฐ้”ไธๅฏ่ƒฝใชใ‚‰่ท้›ขใฏ็„ก้™ๅคงใงใ‚ใ‚‹ใ€‚

ๅคš้‡่พบใ‚’ไฝœใ‚‰ใชใ„ใ‚ˆใ†ใ‚ฐใƒฉใƒ•ใฏ std::map<Num, std::set<Num>> ใซใ™ใ‚‹ใŒใ€้ ‚็‚นใ‹ใ‚‰ๅปถใณใ‚‹่พบใฏ edges[current] ใงๅ–ใ‚Šๅ‡บใ™ใ€‚ edges.at(current) ใ ใจใ€่พบใŒใชใ„ใจใใซไพ‹ๅค–ใŒ้ฃ›ใ‚“ใงใƒ—ใƒญใ‚ปใ‚นใŒ็ต‚ไบ†ใ—ใฆใ—ใพใ†ใ€‚

ABC 177-D

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

ใ‚ฐใƒซใƒผใƒ—ๅˆ†ใ‘ใจใ„ใˆใฐunion-findๆœจใงใ‚ใ‚‹ใ€‚

ๅ‹้”ใฎๅ‹้”ใฏๅ‹้”ใจใ„ใ†ๆŽจ็งป้–ขไฟ‚ใฏ้€ฃ็ตๆˆๅˆ†ใซๅˆ†่งฃใงใใ‚‹ใ€‚ใ“ใ‚Œใ‚’ใƒใƒฉใƒใƒฉใซใ™ใ‚‹ใซใฏใ€้€ฃ็ตๆˆๅˆ†ใฎๆ•ฐใ ใ‘ใ‚ฐใƒซใƒผใƒ—ใ‚’ไฝœใฃใฆใ€็–Žใช้€ฃ็ตๆˆๅˆ†ใฎไบบใ‚’ใใ‚Œใžใ‚Œใฎใ‚ฐใƒซใƒผใƒ—ใซ้›†ใ‚ใ‚Œใฐใ„ใ„ใ€‚ใ‚ˆใฃใฆๆœ€ๅฐใฎใ‚ฐใƒซใƒผใƒ—ๆ•ฐใฏๆœ€ๅคงใฎ้€ฃ็ตๆˆๅˆ†ใฎ่ฆ็ด ๆ•ฐใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใฏๆฐ—ใŒไป˜ใ‹ใชใ‹ใฃใŸใ€‚

ๅฝ“ๆ™‚ใฏ่‡ชๅ‰ใงๅฎŸ่ฃ…ใ—ใŸUnion-findๆœจใ‚’ไฝฟใฃใฆใ„ใŸใ€‚ไปŠใฏACLใ‚’ไฝฟใฃใฆใ„ใ‚‹ใ€‚

ABC 177-E

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

็”จ่ชžใฎๅฎš็พฉใ‚’่ฝใก็€ใ„ใฆ็†่งฃใ™ใ‚Œใฐๅˆ†ใ‹ใ‚‹ใ€‚

$GCD(A,B,C) = GCD(GCD(A,B),C) = GCD(A,GCD(B,C))$ ใชใฎใงใ€ใ™ในใฆใฎ่ฆ็ด ใฎGCDใŒ1ใ‚ˆใ‚Šๅคงใใ‘ใ‚Œใฐ not coprime ใงใ‚ใ‚‹ใ€‚

Pairwise coprime ใชใ‚‰ๅฟ…ใš setwise coprime ใ ใŒ้€†ใฏๆˆใ‚Š็ซ‹ใŸใชใ„ใฎใงใ€ pairwise coprime ใงใฏใชใ„ไพ‹ใ‚’ไธ€ใคใงใ‚‚ใฟใคใ‘ใŸใ‚‰ setwise coprime ใจๅ‡บๅŠ›ใ—ใ€ใใ†ใงใชใ‘ใ‚Œใฐ pairwise coprime ใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใฏ $A_{i+1}$ ใฎ็ด ๅ› ๆ•ฐใŒ $A_1..A_i$ ใฎ็ด ๅ› ๆ•ฐใ‚’ๅซใ‚€ใ‹ใฉใ†ใ‹ใงๅˆ†ใ‹ใ‚‹ใ€‚

ABC 178-D

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

DFS(ๅน…ๅ„ชๅ…ˆๆŽข็ดข)ใฏใ‚นใ‚ฟใƒƒใ‚ฏใฎๆทฑใ•ใซๆณจๆ„ใ™ใ‚Œใฐใใ‚Œใ„ใซๅ†ๅธฐใงๆ›ธใ‘ใ‚‹ใ€‚

ๆ•ฐๅˆ—ใฏ้ †ๅบใŒ็•ฐใชใ‚Œใฐ้•ใ†ใ‚‚ใฎใจๆ•ฐใˆใ‚‹ใฎใงใ€3ไปฅไธŠใฎๆ•ฐใ‚’ $S$ ใ‹ใ‚‰ๅผ•ใ„ใฆๆฎ‹ใ‚Šใ‚’ๅ†ๅธฐ็š„ใซๆฑ‚ใ‚ใ‚Œใฐใ‚ˆใ„ใ€‚ $S$ ใฏ2000ใ—ใ‹ใชใ„ใฎใงใ€ใƒกใƒขๅŒ–ใ—ใฆใŠใ‘ใฐ่จˆ็ฎ—ๆ™‚้–“ใŒๆŒ‡ๆ•ฐใ‚ชใƒผใƒ€ใƒผใซใชใ‚‹ใฎใ‚’้˜ฒใ’ใ‚‹ใ—ใ€ใ‚นใ‚ฟใƒƒใ‚ฏใ‚‚ใ‚ใตใ‚Œใชใ„ใ€‚

ABC 178-E

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

45ๅบฆๅ›ž่ปขใ€‚

$x+y$ ใง็ญ‰้ซ˜็ทšใŒๅผ•ใ‘ใ‚‹ใฎใฏๅˆ†ใ‹ใฃใŸใŒใ€ $x-y$ ใฎ็ญ‰้ซ˜็ทšใฏไฝฟใ„้“ใŒๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸใ€‚ๅผๅค‰ๅฝขใฏๅ…ฌๅผ่งฃ่ชฌใซใ‚ใ‚Šใ€ใ‚ˆใ‚Š่ฉณใ—ใ„่งฃ่ชฌใŒ่จ˜ไบ‹ใซใ‚ใ‚‹ใ€‚

ใ—ใ‹ใ—ๅผๅค‰ๅฝขใ‚’ใ—ใชใใฆใ‚‚็›ด่ฆณ็š„ใซ็†่งฃใ™ใ‚‹ๆ–นๆณ•ใŒใ‚ใ‚‹ใ€‚xใŒๅทฆใ€yใŒไธŠใซๅข—ใˆใ‚‹ๅบงๆจ™็ณปใงใ€x+y็ญ‰้ซ˜็ทšใฏๅทฆไธ‹-ๅณไธŠ้–ขไฟ‚ใ‚’ใจใ‚‰ใˆใ€x-y็ญ‰้ซ˜็ทšใฏๅณไธ‹-ๅทฆไธŠ้–ขไฟ‚ใ‚’ๆ‰ใˆใ‚‹ใจๆ€ใˆใฐใ€ไบŒ็‚นใฎใƒžใƒณใƒใƒƒใ‚ฟใƒณ่ท้›ขใฏใ€ไบŒ็‚นใซใŠใ‘ใ‚‹็ญ‰้ซ˜็ทšใฎๅทฎใฎๅคงใใ„ๆ–นใจไธ€่‡ดใ™ใ‚‹ใ€‚

ABC 179-D

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

่ฒฐใ†DPใง่งฃใใ€‚

้…ใ‚‹DPใงใ‚‚่งฃใ‘ใ‚‹ใ‚ˆใ†ใ ใŒใ€่ฒฐใ†DPใง่งฃใ„ใŸใ€‚ใพใšๅŒบ้–“ใ‚’ $L$ ใฎๆ˜‡้ †ใซใ‚ฝใƒผใƒˆใ™ใ‚‹ใ€‚ $i=2..N$ ใฎใƒžใ‚นใซใคใ„ใฆใ€ๅŒบ้–“ใ‚’้ †็•ชใซ่ชฟในใฆ

  • ๅŒบ้–“ใฎ็ต‚ใ‚ใ‚Š $i - R &lt; 1$ ใชใ‚‰ใŠใ‚ใ‚Š
  • ใใ†ใงใชใ‘ใ‚ŒใฐๅŒบ้–“ $\lbrack max(1, i-L), i-R \rbrack$ ใฎใƒžใ‚นใซ่กŒใๆ–นๆณ•ใ‚’ๅ…จ้ƒจ่ถณใ™

ๅŒบ้–“ใซใ‚ใ‚‹่ฒฐใ†ใƒžใ‚นใซ่กŒใๆ–นๆณ•ใ‚’็ดฏ็ฉๅ’Œใง็ฎก็†ใ™ใ‚Œใฐใ€ๅŒบ้–“ใฏ10ไปฅไธ‹ใชใฎใง่จˆ็ฎ—้‡ใฏ $O(N)$ ใซใชใ‚‹ใ€‚็ญ”ใˆใ‚‚็ดฏ็ฉๅ’Œใฎๅทฎๅˆ†ใงๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

ABC 179-E

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

ๅŽณๅฏ†่งฃใ‚’ๆฑ‚ใ‚ใ‚‹ใ‚ˆใ‚Šใ€้ณฉใฎๅทฃๅŽŸ็†ใง่งฃใใ€‚

ไฝ™ใ‚Šใฏ $0..M-1$ ใ—ใ‹ใชใ„ใฎใ ใ‹ใ‚‰ใ€ๅŒใ˜ไฝ™ใ‚ŠใŒไบŒๅบฆๅ‡บใŸใ‚‰ไปฅๅพŒใฏๅ‘จๆœŸ็š„ใซใชใ‚‹ใ€‚ใ‚ˆใฃใฆใ€ๅ‘จๆœŸใ‚’ๆฑ‚ใ‚ใฆใ€

  • ๅ‘จๆœŸใซๅ…ฅใ‚‹ๅ‰
  • ๅ‘จๆœŸใ‚’็นฐใ‚Š่ฟ”ใ—
  • ๅ‘จๆœŸใฎ้€”ไธญใง $n$ ใซ้”ใ™ใ‚‹

ใซใคใ„ใฆๅ’Œใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ใŸใ ใ—ๅ‘จๆœŸใซๅ…ฅใ‚‹ๅ‰ใซ $n$ ใซ้”ใ™ใ‚‹ใ“ใจใŒใ‚ใ‚‹ใ€‚

ABC 180-D

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

ใ‚ธใƒ ใซ้€šใ†ใจๅผทใ•ใŒใฉใ†ๅค‰ใ‚ใ‚‹ใ‹ใฏไปŠใฎๅผทใ•ใจไปŠ้€šใ†ใ‚ธใƒ ใ ใ‘ใงๆฑบใพใ‚Šใ€ใ“ใ‚Œใพใงใฉใ†้›ใˆใŸใ‹ใซใฏ้–ขไฟ‚ใชใ„ใ€‚ใ“ใ‚Œใ‚’ใƒžใƒซใ‚ณใƒ•ๆ€งใจใ„ใ†ใ€‚

ใชใฎใงไธกๆ–นใฎใ‚ธใƒ ใซ้€šใฃใŸใจใ—ใฆๅผทใ•ใŒไฝŽใใชใ‚‹ๆ–นใ‚’้ธในใฐใ‚ˆใ„ใ€‚ๅผฑใ„ใ†ใกใฏๅผทใ•ใ‚’Aๅ€ใซใ—ใ€ใใฎๅพŒใฏBๅข—ใ‚„ใ™ใจใ‚ˆใ•ใใ†ใ ใŒใ€ใใ“ใพใง่€ƒๅฏŸใ—ใชใใฆใ‚‚่งฃใ‘ใ‚‹ใ€‚

ABC 181-190

ABC 181-D

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

็ฎ—ๆ•ฐ็š„ใชๆ–นๆณ•ใง่งฃใ‘ใ‚‹ใ€‚NใŒๅคงใใ„ใฎใงใ€้ †ๅˆ—ใ‚’ๆ•ฐใˆไธŠใ’ใ‚‹ใจTLEใ™ใ‚‹ใ€‚

็ฎ—ๆ•ฐ็š„ใชๆ–นๆณ•ใฏใ€ๆ•ฐๅญ—ใ‚’ใ„ใ„ๆ„Ÿใ˜ใซ็ต„ใฟๅˆใ‚ใ›ใ‚‹ใจใ€ไธ‹ใ‹ใ‚‰3ๆก็›ฎใŒๅถๆ•ฐใ‹ๅฅ‡ๆ•ฐใ‹ใจใ€ไธ‹ใ‹ใ‚‰1,2ๆก็›ฎใฎ็ต„ใ‚’ไฝฟใฃใฆ8ใฎๅ€ๆ•ฐใซใชใ‚‹ใ‹ใฉใ†ใ‹่ชฟในใ‚‹ใ€‚่ฆใฏ000, 008, ..., 192 ใ‹ใฉใ†ใ‹่ชฟในใ‚‹ใ€‚้–“้•ใ„็„กใ„ใŒใ‚ณใƒผใƒ‰้‡ใŒๅคงใใ„ใ€‚

ๅฎŸใฏไธ‹ไธ‰ๆกใ‚’ๆฑ‚ใ‚ใ‚‹ๆ–นใŒ็ฐกๅ˜ใงใ‚ใ‚‹ใ€‚ใ“ใกใ‚‰ใฎ่จ˜ไบ‹ใ‚’ๅ‚็…งใ€‚

ABC 181-E

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

ๆ•ฐๅญฆ็š„่€ƒๅฏŸใŒๅฟ…่ฆใ€‚

่งฃใ‚’ๆบ€ใŸใ™็ต„ใฏใ€ๅฐใ•ใ„ๅ€คใ‹ใ‚‰้ †ใซไบŒใคใšใคๅ–ใ‚‹ใ€ใงใ‚ใ‚‹ใ€‚ๆœ€ใ‚‚ๅคงใใ„ๅ€คใจๆœ€ใ‚‚ๅฐใ•ใ„ๅ€คใ‚’็ต„ใ‚€ใ€ใงใฏใชใ„ใ€‚ใ“ใฎๅ‰ๆใŒ้–“้•ใฃใฆใ„ใ‚‹ใจใฉใ†ใซใ‚‚ใชใ‚‰ใชใ„ใ€‚ใ“ใ‚ŒใŒๅˆ†ใ‹ใ‚Œใฐ็ดฏ็ฉๅ’Œใ‚’ใคใ‹ใฃใฆ่จˆ็ฎ—้‡ใ‚’ๆธ›ใ‚‰ใ›ใ‚‹ใ€‚

ABC 182-D

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

ๅ•้กŒใ‚’ใ‚ˆใ่ชญใ‚€ๅฟ…่ฆใŒใ‚ใ‚‹ใ€‚ๅ•ใ‚ใ‚Œใฆใ„ใ‚‹ใฎใฏๆœ€ๅคง็žฌ้–“ๅบงๆจ™ใงใ‚ใฃใฆใ€ $A_{1..i}$ ไธ€็ต„ใฎๅ‹•ไฝœๅฎŒไบ†ๅพŒใงใฏใชใ„ใ€‚

็ดฏ็ฉๅ’Œใ‚’็ดฏ็ฉใ™ใ‚‹ใฎใฏ้ ญใŒใ“ใ‚“ใŒใ‚‰ใŒใ‚‹ใŒใ€ใ‚ณใƒผใƒ‰ใซ่ฝใจใ—่พผใ‚ใฐใใฎใพใพใงใ‚ใ‚‹ใ€‚ $i$ ็ต„็›ฎใฎๅ‹•ไฝœใ‚’ใ™ใ‚‹ใจใ€ๆœ€ๅคง็žฌ้–“ๅบงๆจ™ใฏไปฅไธ‹ใฎๆœ€ๅคงๅ€คใงใ‚ใ‚‹ใ€‚

  • ๅ‡บ็™บ็‚น(ๅณๅดใซใ—ใ‹่กŒใ‹ใชใ„ๅ ดๅˆ)
  • $A_i$ ใ ใ‘้€ฒใพใšใซ่กŒใ‘ใ‚‹ๅ ดๆ‰€(ใ“ใ‚Œใพใงใฎๆœ€ๅคง็žฌ้–“ๅบงๆจ™)
  • $A_i$ ้€ฒใ‚€ใ“ใจใงๅˆใ‚ใฆ่กŒใ‘ใ‚‹ๆœ€ๅคง็žฌ้–“ๅบงๆจ™

ใ“ใฎๅพŒใ€ไฝ็ฝฎใซ็ดฏ็ฉๅ’Œใจ $A_i$ ใ‚’่ถณใ—ใ€็ดฏ็ฉๅ’Œใซ $A_i$ ใ‚’่ถณใ—ใ€็ดฏ็ฉใ—ใŸๅ‹•ใใฎๆœ€ๅคง็žฌ้–“ๅบงๆจ™ใŒ้ŽๅŽปๆœ€ๅคงใชใ‚‰ๅทฎใ—ๆ›ฟใˆใ‚‹ใ€‚

ABC 182-E

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

ๅธฐ็ดๆณ•ใ€‚็ธฆๆจชใ‚’็‹ฌ็ซ‹ใชๅ•้กŒใจใ—ใฆ่€ƒใˆใ‚‹ใ€‚

็ธฆๆ–นๅ‘ใซๅ…‰ใŒๅฑŠใใ‹ใจใ€ๆจชๆ–นๅ‘ใซๅ…‰ใŒๅฑŠใใฏ็‹ฌ็ซ‹ใชใฎใงๅˆฅใ€…ใซ่€ƒใˆใ‚‹ใ€‚ๅ…ฌๅผ่งฃ่ชฌใซใ‚ใ‚‹้€šใ‚Šใ€ใ™ใงใซๅ…‰ใŒๅฝ“ใŸใฃใฆใ„ใ‚‹ใƒžใ‚นใฏใใฎ้šฃใ‚‚ใ‚ใฃใฆใ„ใ‚‹ใ“ใจใ‚’ๅˆฉ็”จใ—ใฆ่จˆ็ฎ—้‡ใ‚’ๆธ›ใ‚‰ใ›ใ‚‹ใ€‚

ABC 183-D

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

ใ„ใ‚‚ใ™ๆณ•(Imos method)ใ‚’ไฝฟใ†ใ€‚

NใจSใจTใŒๅคงใใ„ใฎใงใ€ใ™ในใฆใฎๆ•ดๆ•ฐๆ™‚ๅˆปใซใคใ„ใฆใŠๆนฏใฎ้‡ใ‚’ๆฑ‚ใ‚ใ‚‹ใจTLEใ™ใ‚‹ใ€‚ใ ใŒๅค‰ๅŒ–็‚นใ ใ‘ใใฎ็ดฏ็ฉๅ’Œใ‚’ๆฑ‚ใ‚ใ‚‹ใ“ใจใงใ€่จˆ็ฎ—้‡ใ‚’ $O(N)$ ใซๆŠ‘ใˆใ‚‰ใˆใ‚‹ใ€‚

  • S, T, P ใ‚’ๅพ—ใฆใ€ๅ…ฅใ‚Šใฎๅค‰ๅŒ–็‚นSใงใŠๆนฏใฎ้‡ใ‚’ +P, ๅ‡บใฎๅค‰ๅŒ–็‚นTใงใŠๆนฏใฎ้‡ใ‚’ -P ใ™ใ‚‹ใ‚คใƒ™ใƒณใƒˆใ‚’ไฝœใ‚‹
  • ใ‚คใƒ™ใƒณใƒˆใ‚’ๆ™‚ๅˆปใฎๆ˜‡้ †ใซไธฆในๆ›ฟใˆใ‚‹
  • ๅŒไธ€ๆ™‚ๅˆปใฎใ‚คใƒ™ใƒณใƒˆใซใคใ„ใฆใŠๆนฏใฎ้‡ใ‚’ใพใจใ‚ใ‚‹
  • ใ‚ใ‚‹ๆ™‚ๅˆปใฎใŠๆนฏใฎ้‡ใŒๅฎน้‡Wใ‚’่ถ…ใˆใฆใŸใ‚‰ไพ›็ตฆไธ่ƒฝใ€ใใ†ใงใชใ‘ใ‚Œใฐไพ›็ตฆๅฏ่ƒฝใงใ‚ใ‚‹

ABC 184-D

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

็ขบ็Ž‡DPใจๅ‘ผใฐใ‚Œใ‚‹ใ€‚

ๆœŸๅพ…ๅ€คใฎๅŠ ๆณ•ๆ€งใ‹ใ‚‰ใ€ๅˆ†ๅฒ็‚นใฎใใฎๅ…ˆใซ่กŒใ็ขบ็Ž‡ใ‚’้€ๆฌก็š„ใซๆฑ‚ใ‚ใ‚‹ใ€‚DPใฎๆ›ดๆ–ฐๅผใฏๆกไปถไป˜ใ็ขบ็Ž‡ใใฎใ‚‚ใฎ(A,B,Cๆžšใ‚ใ‚‹ใจใใซA,B,Cใ‚’ไธ€ๆžšๅผ•ใ็ขบ็Ž‡ใฏA:B:C)ใงใ‚ใ‚‹ใ€‚็งใฎ่งฃๆณ•ใฏๅ‡บ็™บ็‚น(A,B,Cๆžš)ใ‹ใ‚‰้…ใ‚‹DPใ€ๅ…ฌๅผ่งฃ่ชฌใฏ็ต‚็€็‚น(ใ„ใšใ‚Œใ‹ใฎ็กฌ่ฒจใŒ100ๆžš)ใ‹ใ‚‰ใƒกใƒขๅŒ–ๅ†ๅธฐใงๅฎŸ่ฃ…ใ—ใฆใ„ใ‚‹ใ€‚

ABC 185-D

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

ๅ•้กŒๆ–‡ใ‚’ๅˆถ็ด„ใซ่ฝใจใ—่พผใ‚€ใ€‚

่ตคใ„ใƒใƒณใ‚ณใŒ้’ใ„ใƒใƒณใ‚ณใซ้‡ใชใฃใฆใฏใ„ใ‘ใชใ„ใŒใ€่ตคใ„ใƒใƒณใ‚ณใ‚’ๆŠผใ™ๅ ดๆ‰€ๅŒๅฃซใŒ้‡ใชใฃใฆใ‚‚ใ„ใ„ใ€‚ใจใ„ใ†ใ“ใจใฏไปฅไธ‹ใฎๅˆถ็ด„ใซใชใ‚‹ใ€‚

  • ้€ฃ็ถšใ™ใ‚‹็™ฝใฎใƒžใ‚นใฎๆœ€ๅฐๅ€คใŒใ€่ตคใ„ใƒใƒณใ‚ณใฎ้•ทใ•ใฎๆœ€ๅคงๅ€ค $l$ ใซใชใ‚‹
  • ้€ฃ็ถšใ™ใ‚‹็™ฝใฎ $n$ ใƒžใ‚นใซๆŠผใ™ๅ›žๆ•ฐใฏใ€ $\lfloor l/n \rfloor$ ใงใ‚ใ‚‹

ABC 185-F

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

ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใ‚’ไฝฟใ†ใ€‚

ๅŠ ๆณ• + ใจๅŒๆง˜ใซ XOR ใ‚‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใซ่ผ‰ใ›ใ‚‰ใ‚Œใ‚‹ใ€‚่‡ชๅˆ†ใงๅฎŸ่ฃ…ใ—ใŸใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใ‚’ไฝฟใฃใŸใŒใ€ACLใ‚’ไฝฟใฃใฆใ‚‚ใ‚ˆใ„ใ€‚

ABC 186-D

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

็ตถๅฏพๅ€คใŒใ‚ใ‚‹ใจไธŠๆ‰‹ใๅ€คใ‚’ใพใจใ‚ใ‚‰ใ‚Œใชใ„ใฎใงใ€็ตถๅฏพๅ€คใ‚’ๅค–ใ™ใ€‚

$A_i$ ใ‚’ๆ˜‡้ †ใซใ‚ฝใƒผใƒˆใ—ใฆใ‚‚ใ€ๅพ—ใ‚‰ใ‚Œใ‚‹็ตๆžœใฏ็ญ‰ใ—ใ„ใ€‚ใชใœใชใ‚‰ไปฅไธ‹ใŒๆˆใ‚Š็ซ‹ใคใ‹ใ‚‰ใ ใ€‚

  • $i &lt; j$ ใ‹ใค $A_i &lt; A_j$ ใชใ‚‰ใ‚ฝใƒผใƒˆใ—ใฆใ‚‚ $i &lt; j$ ใชใฎใงใ€ $i,j$ ใฎ็›ธๅฏพ็š„ใชไฝ็ฝฎใฏๅŒใ˜ใ€‚
  • $i &lt; j$ ใ‹ใค $A_i \geq A_j$ ใชใ‚‰ไฝ็ฝฎใŒๅ…ฅใ‚Œๆ›ฟใ‚ใ‚‹ใฎใงใ‚ฝใƒผใƒˆๅ‰ใฎ $|A_j - A_i|$ ใ‚’่ถณใ™ใ“ใจใซ็ญ‰ใ—ใ„ใŒใ€็ตถๅฏพๅ€คใชใฎใงๅ€คใฏๅค‰ใ‚ใ‚‰ใชใ„

่จˆ็ฎ—้‡ใ‚’ๆธ›ใ‚‰ใ™ใŸใ‚ใซ็ดฏ็ฉๅ’Œใ‚’ๅ–ใ‚ŠใŸใ„ใ€‚่ฆ็ด ใฎๅทฎใ ใ‘ใซๆ„ๅ‘ณใŒใ‚ใ‚‹ใฎใงใ€ๆœ€ๅฐๅ€คใ‚’0ใซใ—ใฆใ‚‚ๅŒใ˜ใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆ $min(A)$ ใ‚’ๅ…จ้ƒจใฎ $A_i$ ใ‹ใ‚‰ๅผ•ใ„ใฆใŠใใ€‚ใ“ใ‚Œใงใ™ในใฆ้ž่ฒ ใฎๅ€คใซใชใ‚‹ใฎใงใ€ $(A_i - A_{i-1}) + (A_{i-1} - A_{i-2}) + ... (A_2 - A_1)$ ใฏ $i$ ็•ช็›ฎใพใงใฎ็ดฏ็ฉๅ’Œใซใชใ‚‹ใ€‚

ไบŒ้‡ $\sum$ ใซใŠใ‘ใ‚‹ $j$ ใฎๅฏ„ไธŽๅˆ†ใฏใ€ $(A_j - A_1) * j$ ใฎ้•ทๆ–นๅฝขใ‚’ๆใใจๅˆ†ใ‹ใ‚‹ใ€‚ใ“ใฎ้•ทๆ–นๅฝขใฎไธŠ่พบใ‹ใ‚‰ $A_j - A_1$ ใซไธ‹ใ‚ใ—ใŸ้•ทใ•ใฎๅ’ŒใŒๅฏ„ไธŽๅˆ†ใงใ‚ใ‚Šใ€ใคใพใ‚Š้•ทๆ–นๅฝขใฎ้ข็ฉใ‹ใ‚‰ $A_1..A_j$ ใฎ็ดฏ็ฉๅ’Œใ‚’ๅผ•ใ„ใŸใ‚‚ใฎใงใ‚ใ‚‹ใ€‚

ABC 187-D

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

ๅคšๆ•ฐๆฑบใฏใ€ๅพ—็ฅจๆ•ฐใงใฏใชใใ€ๅพ—็ฅจๆ•ฐใฎๅทฎใง่€ƒใˆใ‚‹ใ€‚

ๅพ—็ฅจๅทฎใฏๅ…จใๆผ”่ชฌใ—ใชใ„ใจใใŒๆœ€ๅฐ(ๆœ€ใ‚‚ไธๅˆฉ)ใงใ‚ใ‚‹ใ€‚ๅพ—็ฅจๆ•ฐใฎๅทฎใ‚’ๅข—ใ‚„ใ™ๆ–นๆณ•ใ‚’่€ƒใˆใ‚‹ใ€‚ๆผ”่ชฌใ™ใ‚‹ใจ $A_i * 2 + B_i$ ใ ใ‘ๅพ—็ฅจๆ•ฐใฎๅทฎใŒๅŸ‹ใพใ‚‹ใฎใงใ€ใ“ใฎๅ€คใŒๅคงใใ„้ †ใซๆผ”่ชฌใ—ใ€ๅพ—็ฅจๅทฎใŒๆญฃใฎๅ€คใซใชใฃใŸใจใ“ใ‚ใง็ต‚ใ‚ใ‚‹ใ€‚

ABC 188-D

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

ใ„ใ‚‚ใ™ๆณ•ใ‚’ไฝฟใ†ใ€‚

ๆ—ข่ฟฐใฎ้€šใ‚Šๆ™‚ๅˆปใ”ใจใฎใ‚คใƒ™ใƒณใƒˆใ‚’ไฝœใ‚Šใ€ๅŒไธ€ๆ™‚ๅˆปใฎใ‚คใƒ™ใƒณใƒˆใ‚’ใพใจใ‚ใ‚‹ใ€‚ๅพŒใฏใ‚คใƒ™ใƒณใƒˆใ‚’ๆ™‚ๅˆป้ †ใซใฟใฆใ€ๅ‰ใฎใ‚คใƒ™ใƒณใƒˆใ‹ใ‚‰ใฎๆœŸ้–“ใซใคใ„ใฆใ€1ๆ—ฅใ‚ใŸใ‚Šใƒ—ใƒฉใ‚คใƒ ๆ–™้‡‘ใ‚’ๆœ€ๅคงใจใ—ใฆๆ”ฏๆ‰•ใˆใฐใ‚ˆใ„ใ€‚

ABC 188-E

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

DAGใงใ‚ใ‚‹ใ€‚

ใจใ„ใ†ใ“ใจใงใ€in-degreeใŒ0ใฎ้ ‚็‚นใ‹ใ‚‰้ †็•ชใซๆœ€ๅฎ‰ๅ€คใ‚’ไผๆฌใ™ใ‚Œใฐใ„ใ„ใ€‚ใƒˆใƒใƒญใ‚ธใ‚ซใƒซใ‚ฝใƒผใƒˆใ‚’ไฝฟใฃใŸใŒใ€ๅ…ƒใ€…ๅ…ฅๅŠ›ใŒใƒˆใƒใƒญใ‚ธใ‚ซใƒซใ‚ฝใƒผใƒˆๆธˆใชใฎใ ใ‹ใ‚‰ใ‚‚ใฃใจใ™ใฃใใ‚Šใ—ใŸ็ทšๅฝขๆ™‚้–“ใฎๅฎŸ่ฃ…ใŒใ‚ใฃใŸใ€‚

ABC 189-D

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

ใƒฉใƒณใƒฌใƒณใ‚ฐใ‚นๅœง็ธฎใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹ใ€‚ใใฎไธŠใงใ€ใƒ“ใƒƒใƒˆๆ“ไฝœใฎๆ„ๅ‘ณใ‚’่€ƒใˆใ‚‹ใ€‚

  • ใƒ“ใƒƒใƒˆๆ“ไฝœใฎANDใฏใ€ๅ‡บๅŠ›ใ‚’Trueใซใ—ใŸใ„ใชใ‚‰ใ€ๅ…ฅๅŠ›ใ‚’Trueใซใ›ใ‚ˆใ€ใจๆ‰ใˆใ‚‹
  • ใƒ“ใƒƒใƒˆๆ“ไฝœใฎORใฏใ€ๅ…ฅๅŠ›ใŒใชใ‚“ใงใ‚ใ‚Œใ€ๅ‡บๅŠ›ใ‚’Trueใซใ—ใŸใ„ใชใ‚‰ใใ†ใงใใ‚‹ใ€ใจๆ‰ใˆใ‚‹

$S_i$ ใŒANDใชใ‚‰ $x_i$ ใฏTrueใ—ใ‹้ธๆŠž่‚ขใŒ็„กใ„ใฎใง็ต„ใฟๅˆใ‚ใ›ใฎๆ•ฐใซใฏๅฝฑ้Ÿฟใ—ใชใ„ใ€‚ORใฎไธฆใณใ ใ‘ใฟใ‚‹ใ€‚้€ฃ็ถšใ™ใ‚‹ORใคใพใ‚ŠrunใซใŠใ„ใฆใ€ $pos$ ๅ€‹็›ฎใ‹ใ‚‰ $len$ ๅ€‹ORใŒ้€ฃ็ถšใ™ใ‚‹ๅ ดๅˆใ€

  • ใ“ใฎ run ใง $y_N$ ใ‚’Trueใซใ™ใ‚‹ใฎใงใ€ใใ‚Œไปฅๅ‰ใฎ $y$ ใฏไฝ•ใงใ‚‚ใ‚ˆใ„ใ€‚็ต„ใฟๅˆใ‚ใ›ใฏ $(2^{len-1}) * 2^{pos}$ ้€šใ‚Š
  • ใ“ใฎrunใงใฏTrueใซใ›ใšใ€ใใ‚Œไปฅๅ‰ใฎ run ใงTrueใซใ™ใ‚‹ใ€‚ใ“ใฎrunใซใคใ„ใฆใฏๅ…จFalseใฎไธ€้€šใ‚Šใงใ€็ต„ใฟๅˆใ‚ใ›ใฎๆ•ฐใฏไปฅๅ‰ใฎrunใงๆฑบใพใ‚‹ใ€‚

ใฎใงใ€ๅพŒใ‚ใฎrunใ‹ใ‚‰้ †ใซ่ชฟในใฆ็ต„ใฟๅˆใ‚ใ›ใ‚’ๅŠ ็ฎ—ใ—ใฆใ„ใใ€‚

ABC 190-D

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

็ญ‰ๅทฎๆ•ฐๅˆ—ใฎๅ…ฌๅผใ‚’ๅ› ๆ•ฐๅˆ†่งฃใ™ใ‚‹ใ€‚

็ญ‰ๅทฎๆ•ฐๅˆ—ใฎๅ…ฌๅผ $N=(n+1)*n/2$ ใ‚’้€†ใซๅˆฉ็”จใ—ใฆ $2*N=(n+1)*n$ ใจใ—ใ€ $N$ ใฎ็ด„ๆ•ฐใ‹ใ‚‰ $n$ ใ‚’ๅˆ—ๆŒ™ใ™ใ‚‹ใ€‚ $n$ ใ‚’้‡่ค‡ใ—ใฆๆ•ฐใˆใชใ„ใ‚ˆใ†ใซๆณจๆ„ใ™ใ‚‹ใ€‚็ด„ๆ•ฐใฎๆ•ฐใฏใใ‚Œใปใฉๅคšใใชใ„ใฎใง ($log2(N)$ ใ‚’่ถ…ใˆใ‚‹ใ“ใจใฏ็„กใ„)ใ€้‡่ค‡ใŒๅฟƒ้…ใชใ‚‰ std::set ใง้›†่จˆใ™ใ‚‹ใ€‚

ABC 191-200

ABC 191-C

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

่พบใงใฏใชใ้ ‚็‚นใซๆณจ็›ฎใ™ใ‚‹ใ€‚

่พบใซๆณจ็›ฎใ™ใ‚‹ใจใ€ๅ‡นใฎ้ƒจๅˆ†ใงไธŠๆ‰‹ใๅ€คใŒๆฑ‚ใพใ‚‰ใชใใชใ‚‹ใ€‚ใ‚ˆใฃใฆ้ ‚็‚นใŒ90ๅบฆๆ›ฒใŒใ‚‹็ฎ‡ๆ‰€ใ‚’ๆ•ฐใˆใ‚‹ใ€‚ใ‚ใ‚‹็‚นใฎๅ‘จ่พบ4ใƒžใ‚นใซใคใ„ใฆใ€็™ฝ้ป’ใฎใƒžใ‚นใฎๆ•ฐใŒ1ใพใŸใฏ3ใชใ‚‰ใใ“ใง่พบใŒๆ›ฒใŒใ‚‹ใจใ‚ใ‹ใ‚‹ใ€‚

ABC 191-D

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

ๆตฎๅ‹•ๅฐๆ•ฐใง็ฐกๅ˜ใซ่งฃใ‘ใ‚‹ใจๆ€ใฃใŸใ‚‰ใ€็ฒพๅบฆใซๆณจๆ„ใ™ใ‚‹ใ€‚

Xๅบงๆจ™ใŒๆฑ‚ใพใ‚ŒใฐYๅบงๆจ™ใฏไธ‰่ง’้–ขๆ•ฐใ‹ใ‚‰ๆฑ‚ใพใ‚‹ใฎใงใ€Yๅบงๆจ™ใฎไธŠไธ‹้™ใ‚’ๅผ•ใ„ใฆ(ไธก็ซฏใŒๆ•ดๆ•ฐใฎๅ ดๅˆใซๆณจๆ„ใ™ใ‚‹)ๆ•ฐใˆใ‚‹ใ€‚ใฎใ ใŒใ€ๆตฎๅ‹•ๅฐๆ•ฐใงๅฎŸ่ฃ…ใ™ใ‚‹ใจไธธใ‚่ชคๅทฎใŒๅŽŸๅ› ใงWAใ™ใ‚‹ใ€‚ๅ•้กŒๆ–‡ใ‚’ใ‚ˆใ่ชญใฟ่ฟ”ใ™ใจใ€

  • $|X|,|Y|,|R| \leq 10^5$
  • X,Y,R ใฏ้ซ˜ใ€…ๅฐๆ•ฐ็ฌฌ4ไฝใพใงไธŽใˆใ‚‰ใ‚Œใ‚‹

ใชใฎใงใ€1+52ใƒ“ใƒƒใƒˆ็ฒพๅบฆใฎๆตฎๅ‹•ๅฐๆ•ฐใงใฏ็ฒพๅบฆใŒ่ถณใ‚Šใชใ„ใ€‚ใ—ใ‹ใ—64-bitใงใฏใ‚ฎใƒชใ‚ฎใƒช็ฒพๅบฆใŒ่ถณใ‚Šใ‚‹ใ€‚ใใฎใŸใ‚ๆตฎๅ‹•ๅฐๆ•ฐใ‚’ๅ›บๅฎšๅฐๆ•ฐ(ๆ•ดๆ•ฐ้ƒจx10000+ๆตฎๅ‹•ๅฐๆ•ฐ้ƒจ)ใจใ—ใฆๆ‰ฑใ†ใ€‚ใ“ใ‚Œใง10้€ฒๆ•ฐ18ๆก(9ๆกใฎไบŒไน—)ใ‚’่ชคๅทฎใชใๆ‰ฑใ†ใ“ใจใŒใงใใ‚‹ใ€‚

ABC 192-D

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

็ญ”ใˆใŒๆ•ดๆ•ฐ $n$ ใกใ‚‡ใ†ใฉใงใ‚ใ‚‹ใ“ใจใ‚’็ขบ่ชใ™ใ‚‹ใฎใฏๅคงๅค‰ใ ใŒใ€็ญ”ใˆใŒ $n$ ไปฅไธŠใพใŸใฏไปฅไธ‹ใงใ‚ใ‚‹ใ“ใจใ‚’็ขบ่ชใ™ใ‚‹ใฎใฏๅฎนๆ˜“ใ€ใจใ„ใ†ๅ•้กŒใŒใ‚ใ‚‹ใ€‚ใใฎใจใใฏไบŒๅˆ†ๆŽข็ดขใ™ใ‚‹ใจๆฑ‚ใพใ‚‹ใ€‚

$n$ ้€ฒๆ•ฐใจๆฑบใ‚ๆ‰“ใกใ—ใฆ $M$ ใ‚’่กจ่จ˜ๅฏ่ƒฝใ‹ใฉใ†ใ‹ใฏใ€ๅฎŸ้š›ใซ $n$ ้€ฒๆ•ฐใง่กจ่จ˜ใ™ใ‚Œใฐใ‚ˆใ„ใ€‚ $n$ ใซใฏๅ˜่ชฟๆ€งใŒใ‚ใ‚‹( $n$ ใ‚’ๅข—ใ‚„ใ™ใจๅฐใ•ใชๆ•ฐใ‚’่กจ็พใงใใชใใชใ‚‹)ใฎใงใ€ใ‚ใ‚‹ $n$ ใงใฏMใ‚’่กจ่จ˜ๅฏ่ƒฝใ€ $n+1$ ใงใฏ่กจ่จ˜ไธๅฏ่ƒฝใจ่งฃใ‚‹ใ€‚ไธ‹้™ใฏ $d+1$ ใชใฎใงใ€็ญ”ใˆใฏ $n-(d+1)$ ใงใ‚ใ‚‹ใ€‚

ๆ•ดๆ•ฐใฎไบŒๅˆ†ๆŽข็ดขใฏใ€็ด ๆœดใซๅฎŸ่ฃ…ใ™ใ‚‹ใจๅŒบ้–“ใŒ2ไปฅไธ‹ใฎใจใใซ็„ก้™ใƒซใƒผใƒ—ใซ้™ฅใ‚Šใ‚„ใ™ใ„ใฎใงใ€ใƒ‘ใ‚ฟใƒผใƒณใ‚’็ขบ็ซ‹ใ™ใ‚‹ใ€‚

ABC 192-E

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

ใƒ€ใ‚คใ‚ฏใ‚นใƒˆใƒฉๆณ•ใงใ‚ใ‚‹ใ€‚

่ท้›ขใฎๅฎš็พฉใ‚’ๆ™‚ๅˆปใซใ™ใ‚Œใฐใ€ใใฎใพใพใƒ€ใ‚คใ‚ฏใ‚นใƒˆใƒฉๆณ•ใง่งฃใ‘ใ‚‹ใ€‚BFSใงๆœ€็Ÿญ่ท้›ขใ‚’ๆฑ‚ใ‚ใ‚‹ใจใใซๅ„ชๅ…ˆๅบฆใ‚ญใƒฅใƒผใซ่ฟฝๅŠ ๆƒ…ๅ ฑใ‚’่ถณใ™ใ‚ˆใ†ใซใ€็›ฎ็š„ๅœฐใจ็งปๅ‹•ๆ™‚้–“(ใ„ใ‚ใ‚†ใ‚‹่ท้›ข)ใฎไป–ใซ็™บ่ปŠ้–“้š”ใ‚’ใ‚ญใƒฅใƒผใซ่ผ‰ใ›ใ‚Œใฐใ‚ˆใ„ใ€‚

ABC 193-D

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

ๆกไปถไป˜ใ็ขบ็Ž‡ใฎๅฎš็พฉใใฎใ‚‚ใฎใงใ‚ใ‚‹ใ€‚ใ‚ใ‚‹ๆ•ฐๅญ—ใŒ่กจใซๆ›ธใ‹ใ‚ŒใŸใ‚ซใƒผใƒ‰ใงๅ‡บๅฐฝใใ—ใŸๅ ดๅˆใ‚’่€ƒๆ…ฎใ™ใ‚‹ใ€‚

ABC 194-D

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

็ขบ็Ž‡ใฎๅŠ ๆณ•ๆ€งใ‹ใ‚‰ๆ˜Žใ‚‰ใ‹ใ€‚

ABC 194-E

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

Binary Indexed Tree (Fenwick Tree) ใ‚’ไฝฟใฃใฆใฟใŸใ€‚ใ‚ใ‚‹ใ„ใฏ็ธฆใฎ็‰ฉใ‚’ๆจชใซใ™ใ‚‹ใ€‚

ๅ…ฌๅผ่งฃ่ชฌใซใ‚ˆใ‚Œใฐ $O(N)$ ่งฃๆณ•ใŒใ‚ใ‚‹ใ€‚ใ ใŒ $O(N*log(N))$ ใฏๅฎน่ชใ•ใ‚Œใ‚‹ใฎใงใ€ $1..k$ ใŒ้€ฃ็ถšใ—ใฆๅ‡บ็พใ™ใ‚‹่ฆ็ด ใ‚’BITใง็ฎก็†ใ—ใฆใ€ใ“ใฎ $k$ ใ‚’ไบŒๅˆ†ๆŽข็ดขใ™ใ‚‹ใจๆฑ‚ใพใ‚‹ใ€‚ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใ‚’ไฝฟใ†ใจTLEใ™ใ‚‹ใ€‚ๆณจๆ„็‚นใจใ—ใฆใ€BITใซ $A_i$ ใŒใ‚ใ‚‹ใ‹ใชใ„ใ‹(1ใ‹0ใ‹)ใ‚’่ผ‰ใ›ใ‚‹ใฎใงๅŒใ˜ๆ•ฐใ‚’ไฝ•ๅ€‹่ผ‰ใ›ใŸใ‹ใฏๅˆฅ้€”็ฎก็†ใ™ใ‚‹ใ“ใจใจใ€BITใซ0ใ‚’่ผ‰ใ›ใ‚‰ใ‚Œใชใ„ใฎใง(1-based indexing)ใ€0ใฏ็‰นๅˆฅๆ‰ฑใ„ใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹ใ€‚

$O(N)$ ่งฃๆณ•ใฏ็ธฆใฎ็‰ฉใ‚’ๆจชใซใ™ใ‚‹ใ€ใคใพใ‚Šmexใซใชใ‚Šใ†ใ‚‹ๆ•ฐใฏ้€ฃ็ถšใ™ใ‚‹Mๅ€‹ใฎไธญใซๅ‡บใชใ„ใ“ใจใ‚’ใ€ $A_i$ ใฎไฝ็ฝฎใ‹ใ‚‰ๆฑ‚ใ‚ใ‚‹ใ€‚

ABC 195-D

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

$N, M, Q$ ใŒๅฐใ•ใ„ใฎใงgreedyใงใ„ใ‘ใใ†ใ€‚

ๅฎŸ้š›ไพกๅ€คใŒๅคงใใ„่ท็‰ฉใ‚’ใ€ใใฎ่ท็‰ฉใŒๅ…ฅใ‚‹ๆœ€ๅฐใฎ็ฎฑใซๅŽใ‚ใ‚Œใฐใ‚ˆใ„ใ€‚ใใ†ใงใชใใฆใ€ๅŒใ˜ไพกๅ€คใฎใ‚‚ใฎใ‚’ใ‚‚ใฃใจๅคงใใช็ฎฑใซๅ…ฅใ‚Œใ‚‹ใฎใ‚‚ใ€ๅŒใ˜ๅคงใใ•ใซไพกๅ€คใŒไฝŽใ„่ท็‰ฉใซๅ…ฅใ‚Œใ‚‹ใฎใ‚‚ๆ„ๅ‘ณใŒใชใ„(ไบคๆ›ใ™ใ‚Œใฐใ„ใ„)ใ€‚ใ‚ฏใ‚จใƒช้–“ใซไพๅญ˜้–ขไฟ‚ใฏใชใใ€ std::multiset ใง็ฎฑใ‚’็ฎก็†ใ—ใฆ่ท็‰ฉใฎๅ…ฅใฃใŸ็ฎฑใ‚’ๅ–ใ‚Š้™คใ‘ใฐใ„ใ„ใ€‚

ABC 196-D

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

C++ใฎๅŠ›ใงใ”ใ‚ŠๆŠผใ—ใฆใ—ใพใฃใŸใ€‚

ๅŠ็•ณใฎ้–“ใซๅขƒ็•Œ็ทšใ‚’ๅผ•ใ/ๅผ•ใ‹ใชใ„ใ€ใคใพใ‚ŠๅŠ็•ณใ‚’ใพใจใ‚ใ‚‹/ใพใจใ‚ใชใ„ใ‚’ใƒ“ใƒƒใƒˆๅ…จๆŽข็ดขใ™ใ‚‹ใจใ€C++ๅฎŸ่ฃ…ใชใ‚‰2็ง’ใ‚’ๅˆ‡ใ‚‹ใฎใงACใงใใ‚‹ใ€‚ๅขƒ็•Œ็ทšใฎๅ†…ๅดใฎ้ ˜ๅŸŸ(ๅŠ็•ณใŒใคใชใŒใฃใŸใ‚‚ใฎใ‚’)ใ‚’union-findๆœจใง็ฎก็†ใ™ใ‚‹ใ€‚ไปฅไธ‹ใฎ้€šใ‚Šๅ…จๆŽข็ดขใ™ใ‚‹ใ€‚

  • ๆœ€ๅˆใฏๅ„ๅŠ็•ณใŒๅญค็ซ‹ใ—ใŸ้ ˜ๅŸŸใจใ™ใ‚‹
  • ๅขƒ็•Œ็ทšใ‚’ๅผ•ใใชใ‚‰้ ˜ๅŸŸใ‚’mergeใ™ใ‚‹
  • ้ ˜ๅŸŸใฎๅคงใใ•ใŒ2(ไธ€็•ณ)ใ‚’่ถ…ใˆใŸใ‚‰ใใฎๅ ดใงๆ‰“ใกๅˆ‡ใ‚‹
  • ๆ‰“ใกๅˆ‡ใ‚‰ใšใซไธ€้€šใ‚Šๅขƒ็•Œ็ทšใ‚’ๅผ•ใ/ๅผ•ใ‹ใชใ„ใ‚’็ต‚ใˆใŸใ‚‰ใ€ไธ€็•ณใŒAๆžšใ€ๅŠ็•ณใŒBๆžšใ‚ใ‚‹ใ‹ใฉใ†ใ‹ๆ•ฐใˆใ‚‹

ABC 197-C

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

$N$ ใŒๅฐใ•ใ„ใฎใงๅ…จๆŽข็ดขใ™ใ‚‹ใ€‚

ABC 197-D

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

ใƒ™ใ‚ฏใƒˆใƒซใ‚’ๅ›ž่ปขใ•ใ›ใ‚Œใฐๆฑ‚ใพใ‚‹ใ€‚

ABC 198-E

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

$N=10^5$ ใชใ‚‰DFSใงใใ‚‹ใ€‚

ใชใฎใงๆœจใ‚’้ ‚็‚น1ใ‹ใ‚‰DFSใ—ใฆใ€้€”ไธญใซใ‚ใ‚‹่‰ฒใ‚’ๆ•ฐใˆใ‚Œใฐใ„ใ„ใ€‚ๆœจใชใฎใง่‘‰ใซๅ‘ใ‹ใ†ใจใใซ็ตŒ็”ฑใ—ใŸ้ ‚็‚นใฎ่‰ฒใ‚’ๅŠ ใˆใ€ๆ นใซๅ‘ใ‹ใ†ใจใใซ้ ‚็‚นใฎ่‰ฒใ‚’้™คใใ€‚

ABC 200-D

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

้ณฉใฎๅทฃๅŽŸ็†ใ€‚

้ณฉใฎๅทฃๅŽŸ็†ใงใ‚ใฃใ•ใ‚Š่งฃใ‘ใ‚‹ใ€‚ใ“ใ†ใ„ใ†็™บๆƒณใ‚‚้‡่ฆใงใ‚ใ‚‹ใ€‚ๅฎš็Ÿณ้€šใ‚ŠDFSใจๅ†ๅธฐใงๆฑ‚ใ‚ใฆใ‚‚ใ„ใ„ใŒใ€ใƒ‘ใ‚นใ‚’ไฟๅญ˜ใ—ใชใŒใ‚‰ใ‚จใƒƒใ‚ธใ‚ฑใƒผใ‚นใ‚’ๅฎŸ่ฃ…ใ™ใ‚‹ใฎใŒ้›ฃใ—ใ„ใ€‚ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ใ€‚

Clone this wiki locally