Typical90 lessons learned - zettsu-t/zettsu-t.github.io GitHub Wiki

็ซถใƒ—ใƒญๅ…ธๅž‹90ๅ•

้’diff(โ˜…6)ใพใงใ‚’่งฃใ็ทด็ฟ’ใงใ™ใ€‚่งฃ็ญ”ๆ™‚้–“ใฏๅˆ†ๆœชๆบ€ๅˆ‡ใ‚Šๆจใฆใ€่ชค็ญ”ใƒšใƒŠใƒซใƒ†ใ‚ฃใฏๅซใฟใพใ›ใ‚“ใ€‚

001

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…4: ้€”ไธญใง่ซฆใ‚ใŸใ€‚

ไบŒๅˆ†ๆŽข็ดข

ใงใ‚ใ‚‹ใ“ใจใฏใ™ใใ‚ใ‹ใฃใŸใŒใ€ไฝ•ใ‚’ใ—ใฆใ„ใ„ใ‹้‰„ๅ‰‡ๆœฌA77ใ‚’่ชญใฟ่ฟ”ใ™ใพใงๅ…จใๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸใ€‚ๅณ็ซฏใ‚’ๅˆ‡ใ‚Šใ™ใŽใชใ„ใ‚ˆใ†ใซใ™ใ‚‹ใ€‚

002

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…3: 5ๅˆ†ใ€‚

ๅ…จๆŽข็ดข

ๆฐ—ใ‚’ๅ–ใ‚Š็›ดใ—ใฆไปŠๅบฆใฏๅ…จๆŽข็ดขใงใ‚ใ‚‹ใ€‚ $N$ ใŒๅฅ‡ๆ•ฐใชใ‚‰ไฝ•ใ‚‚ๅ‡บๅŠ›ใ—ใชใ„ใ€‚ไปฅไธ‹ $N$ ใŒๅถๆ•ฐใจใ™ใ‚‹ใ€‚

std::string ใฎ่พžๆ›ธ้ †ใง ( < ) ใชใฎใงใ€ $N/2$ ๅ€‹ใฎ ( ใซ $N/2$ ๅ€‹ใฎ ) ใ‚’ใคใชใ’ใŸๆ–‡ๅญ—ๅˆ— $S$ ใ‚’ๅˆๆœŸ่งฃใจใ™ใ‚‹ใ€‚ $S$ ใ‚’ std::next_permutation ใงๅ…จๆŽข็ดขใ™ใ‚‹ใ€‚ $S$ ใฎใ†ใกๆญฃใ—ใ„ใ‚ซใƒƒใ‚ณๅˆ—ใฏใ€ๅ…ˆ้ ญใ‹ใ‚‰ใฎ ) ใฎๅ€‹ๆ•ฐใŒ ( ใฎๅ€‹ๆ•ฐไปฅไธ‹ใฎใ‚‚ใฎใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใฏ $S$ ใ‚’ๅ…ˆ้ ญใ‹ใ‚‰่ตฐๆŸปใ™ใ‚Œใฐๅˆ†ใ‹ใ‚‹ใ€‚

003

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…4: 19ๅˆ†ใ€‚

ๆœจใฎ็›ดๅพ„

$N$ ้ ‚็‚นใง $N-1$ ่พบใงใ™ในใฆใฎ้ ‚็‚น้–“ใŒๅˆฐ้”ๅฏ่ƒฝใชใ‚‰ๆœจใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆ้ ‚็‚น้–“ใฎ่ท้›ขใฎๆœ€ๅคงๅ€คใŒ็ญ”ใˆใงใ€ใ“ใ‚Œใฏๆœจใฎ็›ดๅพ„ใงใ‚ใ‚‹ใ€‚ๆฑ‚ใ‚ๆ–นใฏ ใ“ใกใ‚‰ ใซใ‚ใ‚‹ใฎใงใ€ใใฎ้€šใ‚ŠๅฎŸ่ฃ…ใ™ใ‚‹ใ€‚ๆœจใฎ็›ดๅพ„ใ‚’ๅˆใ‚ใฆๅฎŸ่ฃ…ใ—ใŸใฎใงใ€่งฃ็ญ”ใซ20ๅˆ†ๆŽ›ใ‹ใฃใŸใ€‚

ใ‚นใ‚ณใ‚ขใฏๆœจใฎ็›ดๅพ„ใซ1่ถณใ—ใŸใ‚‚ใฎ(ใƒซใƒผใƒ—ใชใฎใง)ใงใ‚ใ‚‹ใ€‚

004

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…2: 5ๅˆ†ใ€‚

้‡่ค‡ใ‚’้™คใ

$i$ ่กŒ็›ฎใ‹ใค $j$ ๅˆ—็›ฎ ใฎๅ€คใฏใ€ $i$ ่กŒใฎๅˆ่จˆ + $j$ ๅˆ—ใฎๅˆ่จˆ - $A_{i,j}$ ใงใ‚ใ‚‹ใ€‚

006

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…6: 15ๅˆ†ใ€‚

ๅ…ˆ้ ญใฎๆ–‡ๅญ—ใฏ $1..(N-K+1)$ ๆ–‡ๅญ—็›ฎใ‹ใ‚‰้ธๆŠžใ™ใ‚‹ใ€‚ใ“ใฎใจใ a..z ใฎใ†ใกใ€่พžๆ›ธ้ †ใงๆœ€ใ‚‚ๅฐใ•ใ„ๆ–‡ๅญ—ใฎใ€ๆœ€ใ‚‚ๅทฆๅด(ไฝ็ฝฎ $p_1 \in {1,(N-K+1)})$ ใŒๅฐใ•ใ„ใ‚‚ใฎ)ใ‚’้ธใถใ€‚

ไบŒ็•ช็›ฎใฎๆ–‡ๅญ—ใฏ $(p_{1}+1)..(N-K+2)$ ๆ–‡ๅญ—็›ฎใ‹ใ‚‰้ธๆŠžใ™ใ‚‹ใ€‚ใ“ใฎใจใ a..z ใฎใ†ใกใ€่พžๆ›ธ้ †ใงๆœ€ใ‚‚ๅฐใ•ใ„ๆ–‡ๅญ—ใฎใ€ๆœ€ใ‚‚ๅทฆๅด(ไฝ็ฝฎ $p_2 \in {1,(N-K+2)})$ ใŒๅฐใ•ใ„ใ‚‚ใฎ)ใ‚’้ธใถใ€‚ไปฅไธ‹ๅŒๆง˜ใงใ‚ใ‚‹ใ€‚

$i..(N-K+i)$ ๆ–‡ๅญ—็›ฎใซ a ใŒๅซใพใ‚Œใฆใ„ใ‚‹ใ‹ใฉใ†ใ‹ใฏใ€ $1..N$ ใซใคใ„ใฆ a ใฎๅ‡บ็พๅ›žๆ•ฐใฎ็ดฏ็ฉๅ’Œใ‚’ๅ–ใ‚Œใฐๅˆ†ใ‹ใ‚‹ใ€‚ b..z ใซใคใ„ใฆใ‚‚ๅŒๆง˜ใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆ้ƒจๅˆ†ๆ–‡ๅญ—ๅˆ—ใซใ‚ใ‚‹ๆ–‡ๅญ—ใŒๅซใพใ‚Œใฆใ„ใ‚‹ใ‹ใฉใ†ใ‹ใฏ $O(1)$ ใงๅˆ†ใ‹ใ‚Šใ€ใใฎไฝ็ฝฎใฏ std::string::find ใงๅˆ†ใ‹ใ‚‹ใ€‚ std::string::find ใใฎใ‚‚ใฎใฏ $O(N)$ ใงใ‚ใ‚‹ใŒใ€ $p_i$ ใฏ1ๅ›ž่ตฐๆŸปใ™ใ‚‹ใ”ใจใซๆ–‡ๅญ—ๅˆ—ใฎ็ต‚็ซฏใซๅ‘ใ‹ใฃใฆใ„ใใฎใง่ตฐๆŸปๅ›žๆ•ฐใฎๅ’Œใฏ $O(N)$ ใงใ‚ใ‚‹ใ€‚

007

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…3: 5ๅˆ†ใ€‚

$A_i$ ใ‚’ๆ˜‡้ †ใซใ‚ฝใƒผใƒˆใ—ใฆใ€ใใ‚Œใžใ‚Œใฎ $b$ ใซใคใ„ใฆ $b \leq A_i$ ใชใ‚‹ๆœ€ๅฐใฎ $i$ ใ‚’ std::lower_bound ใงๆฑ‚ใ‚ใ‚‹ใ€‚ $min(abs(A_i - b), abs(b - A_{i-1}))$ ใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚ใŸใ ใ— $i &gt; N$ ใชใ‚‰ $abs(A_i - b)$ ใฏ็„กใใ€ $i = 1$ ใชใ‚‰ $abs(b - A_{i-1})$ ใฏ็„กใ„ใ€‚

008

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…4: 6ๅˆ†ใ€‚

DP

ๅนพๅบฆใจใชใ่ฆ‹ใŸDPใงใ‚ใ‚‹ใ€‚ $DP[i][j]$ ใฏใ€ $S$ ใฎ $i=1..N$ ๆ–‡ๅญ—็›ฎใพใงใฟใŸใจใใซใ€ atcoder ใฎ $j$ ๆ–‡ๅญ—็›ฎใพใงใ‚’ๅ–ใ‚‹็ต„ใฟๅˆใ‚ใ›ใฎๆ•ฐใงใ‚ใ‚‹ใ€‚

  • $DP[][] = 0, DP[0][0] = 1$ ใงๅˆๆœŸๅŒ–ใ™ใ‚‹
  • $DP[i+1][j] += DP[i][j]$ ใงไธ€ๆ–‡ๅญ—้€ฒใ‚ใ‚‹
  • $s_i = j$ ใชใ‚‰ $DP[i][j]$ ใซ $DP[i-1][j]$ ใ‚’่ถณใ™

009

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ใ€‚โ˜…6: 33ๅˆ†ใ€‚

้ ‚็‚นใ‚’ไธ‰ใค้ธใถใจ่จˆ็ฎ—้‡ใฏ $O(N^3)$ ใ ใŒใ€ไธ€ใคใ‚’ๅ›บๅฎšใ—ใฆๅ††ๅ‘จๆ–นๅ‘ใซ่ชฟในใ‚Œใฐ่จˆ็ฎ—้‡ใฏ $O(N^2log(N))$ ใซใชใ‚‹ใ€‚

ใใฎๅญ—ใฎ็œŸใ‚“ไธญ $P_j$ ใ‚’ $P_{j=1..N}$ ใซๅ›บๅฎšใ—ใฆใ€ $P_{i=1..N}, i \ne j$ ใฎ่ง’ๅบฆใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ใ“ใ‚Œใฏ $P_j$ ใ‚’ๅŽŸ็‚นใจใ—ใฆ $P_i$ ใ‚’ๅนณ่กŒ็งปๅ‹•ใ—ใฆใ‹ใ‚‰้•ทใ•1ใซใ™ใ‚‹ใ€‚ใ“ใฎใจใX่ปธๆ–นๅ‘ใฎๅ˜ไฝใƒ™ใ‚ฏใƒˆใƒซ $I=(1,0)$ ใซๅฏพใ—ใฆ $\angle P_i P_j I = cos(P_i, U) = X_i - X_j$ ใงใ‚ใ‚‹ใ€‚่ง’ๅบฆใฏ $Y_i - Y_j \geq 0$ ใชใ‚‰ $180cos(P_i, U) / \pi$ ใ€ $Y_i - Y_j &lt; 0$ ใชใ‚‰ $360-180cos(P_i, U) / \pi$ ใงใ‚ใ‚‹ใ€‚

ใ“ใ†ใ—ใฆๆฑ‚ใ‚ใŸ $N-1$ ๅ€‹ใฎ่ง’ๅบฆใ‚’ๆ˜‡้ †ใซไธฆในใ€ไธฆในใŸใ‚‚ใฎใซ360ใ‚’่ถณใ—ใฆ $angles[2(N-1)]$ ใ‚’ไฝœใ‚‹ใ€‚ $angles[2(N-1)]$ ใฎๅ…ˆ้ ญใ‹ใ‚‰ $i=1..(N-1)$ ใพใงใฎ่ฆ็ด ใซใคใ„ใฆใ€ $(i+1)..(i+N-2)$ ็•ช็›ฎใฎ่ฆ็ด ใฎไธญใ‹ใ‚‰ $angles[i] + 180$ ใฎๅ‰ๅพŒใฎ่ฆ็ด ใ‚’2ๅ€‹้ธใถใ€‚ใ“ใ‚Œใฏ std::lower_bound ใฎใ‚คใƒ†ใƒฌใƒผใ‚ฟ็ฏ„ๅ›ฒใ‚’ๆณจๆ„ๆทฑใ่จญๅฎšใ™ใ‚‹ใจๆฑ‚ใ‚ใ‚‰ใ‚Œใ‚‹ใ€‚

ใใ‚Œใžใ‚Œใฎ $j$ ใฎใ€ใใ‚Œใžใ‚Œใฎ $i$ ใ‹ใ‚‰ๆฑ‚ใ‚ใŸ่ง’ๅบฆใŒ่งฃใฎๅ€™่ฃœใงใ‚ใ‚Šใ€ๆœ€ๅคงใฎๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚่ง’ๅบฆ $a$ ใŒ180ใ‚’่ถ…ใˆใŸใ‚‰ $360-a$ ใซ่ชญใฟๆ›ฟใˆใ‚‹ใ€‚

010

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…2: 6ๅˆ†ใ€‚

็ดฏ็ฉๅ’Œ

ใ‚ฏใƒฉใ‚น1ใซใคใ„ใฆใ€ๅญฆ็ฑ็•ชๅท $i=1..N$ ใซใคใ„ใฆ็ดฏ็ฉๅ’Œ $cumcum[0]$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ๅฑžใ—ใฆใ„ใชใ„ใ‚ฏใƒฉใ‚นใซใคใ„ใฆใฏ0็‚นใจใ™ใ‚‹ใ€‚็ญ”ใˆใฏ $cumsum[0][R] - cumsum[0][L-1]$ ใงใ‚ใ‚‹ใ€‚ใ‚ฏใƒฉใ‚น2ใ‚‚ๅŒๆง˜ใ€‚

011

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…6: ๅ…จ้ƒจใฏ่งฃใ‘ใชใ‹ใฃใŸใŒsubtask2(4็‚น)ใพใง่งฃใ‘ใŸใ€‚

Subtask2ใพใง่งฃใใชใ‚‰ใ€ $2^N \leq 2^{20}$ ้€šใ‚Šใ‚’ๅ…จๆŽข็ดขใ™ใ‚Œใฐใ‚ˆใ„ใ€‚

ๅ…จ้ƒจ่งฃใใฎใฏDPใงใ‚ˆใ‹ใฃใŸใ€‚ๅˆถ็ด„ใ‚’ใ‚ˆใ่ฆ‹ใ‚Œใฐใ€ไป•ไบ‹ใจๆœŸ้™ใฎไบŒๆฌกๅ…ƒDPใ™ใ‚Œใฐใ‚ˆใ„ใจๅˆ†ใ‹ใ‚‹(ๅ ฑ้…ฌใงใฏๅคšใ™ใŽใ‚‹)ใ€‚

012

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…4: 22ๅˆ†ใ€‚

Union-findๆœจ

ใƒžใ‚นใŒใคใชใŒใฃใฆใ„ใ‚‹ใ‹ใฉใ†ใ‹ใฏใ€union-findๆœจใฎ้€ฃ็ตๆˆๅˆ†ใ‹ใฉใ†ใ‹ใงๅˆ†ใ‹ใ‚‹ใ€‚

  • ใ‚ฏใ‚จใƒช1ใซใคใ„ใฆใƒžใ‚น $(r_i,c_i)$ ใ‚’ๅก—ใ‚Šใ€ $(r_i \pm 1,c_i \pm 1)$ ใŒๅก—ใ‚‰ใ‚Œใฆใ„ใŸใ‚‰้€ฃ็ตใ™ใ‚‹
  • ใ‚ฏใ‚จใƒช2ใซใคใ„ใฆใƒžใ‚น $(r_a,c_a)$ ใจ $(r_b,c_b)$ ใŒไธกๆ–นๅก—ใ‚‰ใ‚Œใฆใ„ใฆใ‹ใค้€ฃ็ตใชใ‚‰ Yes ใ€ใใ†ใงใชใ‘ใ‚Œใฐ No ใงใ‚ใ‚‹

่งฃใฎๆ–น้‡ใฏใ™ใใซใŸใฃใŸใŒใ€ใชใœใ‹ๅฎŸ่ฃ…ใ‚’่ชคใฃใฆๆ™‚้–“ใŒๆŽ›ใ‹ใฃใŸใ€‚

013

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…5: 5ๅˆ†ใ€‚

ใƒ€ใ‚คใ‚ฏใ‚นใƒˆใƒฉๆณ•ใงใ‚ใ‚‹ใ€‚้ ‚็‚น $1$ ใจ้ ‚็‚น $N$ ใใ‚Œใžใ‚Œใ‹ใ‚‰ใ€้ ‚็‚น $1..N$ ใธใฎๆœ€็Ÿญ่ท้›ขใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚้ ‚็‚น $1$ ใ‹ใ‚‰้ ‚็‚น $k$ ใ‚’็ตŒ็”ฑใ—ใฆ้ ‚็‚น $N$ ใซ่กŒใๆœ€็Ÿญ่ท้›ขใฏใ€้ ‚็‚น $1$ ใ‹ใ‚‰้ ‚็‚น $k$ ใธใฎๆœ€็Ÿญ่ท้›ขใจใ€้ ‚็‚น $k$ ใ‹ใ‚‰้ ‚็‚น $N$ ใธใฎๆœ€็Ÿญ่ท้›ขใฎๅ’Œใงใ‚ใ‚‹ใ€‚

014

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…3: 4ๅˆ†ใ€‚

่ฒชๆฌฒๆณ•?

$|A_i - B_i| + |A_{i+1} - B_{i+1}| \leq |A_i - B_{i+1}| + |A_{i+1} - B_i|$ ใชใฎใงใ€ $A_i$ ใ‹ใ‚‰ $B_i$ ใซ้€šใ†ใฎใŒๆœ€้ฉใงใ‚ใ‚‹ใ€‚

015

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…6: ่ซฆใ‚ใŸ

่งฃๆณ•ใฏใŠใŠใ‚€ใญใ‚ใฃใฆใ„ใŸใŒใ€ใƒกใƒขๅŒ–ใ™ใ‚‹ใ‚‚ใฎใ‚’้–“้•ใˆใŸใ€‚

ใƒกใƒขๅŒ–ใ™ใ‚‹ๅฏพ่ฑกใฏ้šŽไน— $n!$ ใจ้šŽไน—ใฎ้€†ๅ…ƒ $1/n!$ ใงใ‚ใ‚‹ใ€‚ $n \choose k$ ใ‚’ใƒกใƒขๅŒ–ใ—ใฆใ‚‚ๅฎŸ่กŒๆ™‚้–“ใฏ็Ÿญใใชใ‚‰ใชใ„ใ€‚

ใƒœใƒผใƒซ้–“ใ‚’่ท้›ข $k$ ้›ขใ›ใ‚‹ใจใใซใƒœใƒผใƒซ้–“ใฎ้š™้–“( $k-1$ ๅ€‹ไปฅไธŠ้›ขใ—ใŸๅ ดๆ‰€)ใฏๆœ€ๅคง $w = \lfloor (N-1)/k \rfloor$ ็ฎ‡ๆ‰€ใงใ‚ใ‚‹ใ€‚ใ“ใฎๆ•ฐใฏ่ชฟๅ’Œ็ดšๆ•ฐใชใฎใงใ€ใƒซใƒผใƒ—ๅ›žๆ•ฐใฏ $O(N^2)$ ใงใฏใชใ $O(Nlog(N))$ ใซใชใ‚‹ใ€‚

้š™้–“ใฎๆ•ฐใฏ $i=0..w$ ๅ€‹ใ‚ใ‚‹ใ€‚้š™้–“ใŒ $i$ ๅ€‹ใฎใจใใ€ใƒœใƒผใƒซ้–“ใ‚’ใใฃใกใ‚Š่ท้›ข $k$ ้›ขใ™ใ€ใคใพใ‚Š้–“ใซใƒœใƒผใƒซใ‚’ใใฃใกใ‚Š $K-1$ ๅ€‹ใšใค่ฉฐใ‚ใŸๅ ดๅˆใ€ๆฎ‹ใ‚Šใฎใƒœใƒผใƒซใฏ $r = N-i \times w - 1$ ๅ€‹ใ‚ใ‚‹ใ€‚ๆฎ‹ใ‚Šใฎใƒœใƒผใƒซใ‚’ใฉใฎ้š™้–“ใซ็ฝฎใใ‹่€ƒใˆใ‚‹ใ€‚ $r$ ๅ€‹ใฎใƒœใƒผใƒซใ‚’ $i$ ็ฎ‡ๆ‰€ใฎ้š™้–“ใซ็ฉใ‚ใ‚‹็ต„ใฟๅˆใ‚ใ›ใฏใ€ $r$ ๅ€‹ใƒœใƒผใƒซใจ $i+1$ ใฎไป•ๅˆ‡ใ‚Šใ‚’ไธฆในใ‚‹ๆ–นๆณ•ใฎๆ•ฐใชใฎใง ${r+i+1} \choose {i+1}$ ้€šใ‚Šใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ใ™ในใฆๆฑ‚ใ‚ใ‚Œใฐใ‚ˆใ„ใ€‚

ใ‚ใ‚‰ใ‹ใ˜ใ‚ $0..N$ ใฎ้šŽไน—ใŠใ‚ˆใณใใฎ้€†ๅ…ƒใ‚’ๆฑ‚ใ‚ใฆใŠใใจTLEใ—ใชใ„ใ€‚ๅ…ฌๅผ่งฃ่ชฌใ‚‚่กจ็พใฏ็•ฐใชใ‚‹ใŒใ€ๆœฌ่ณช็š„ใซใฏๅŒใ˜ใ“ใจใ‚’่ฟฐในใฆใ„ใ‚‹ใ€‚

016

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…3: 15ๅˆ†ใ€‚

็ทๅฝ“ใŸใ‚Š

$A &gt; B &gt; C$ ใซไธฆใณๆ›ฟใˆใฆ็ฝฎใใ€‚ๅˆ่จˆ9999ๆžšใจ่งฃใฃใฆใ„ใ‚‹ใฎใงใ€

  • A ใฏ $a = 0..9999$ ๆžšใ‚’็ทๅฝ“ใŸใ‚Šใ™ใ‚‹ใ€‚ใŸใ ใ— $aA \leq N$ ใฎ็ฏ„ๅ›ฒใ ใ‘่ชฟในใ‚‹ใ€‚
  • B ใฏ $a = 0..(9999-a)$ ๆžšใ‚’็ทๅฝ“ใŸใ‚Šใ™ใ‚‹ใ€‚ใŸใ ใ— $aA + bB \leq N$ ใฎ็ฏ„ๅ›ฒใ ใ‘่ชฟในใ‚‹ใ€‚
  • C ใฏ $N - aA - bB$ ใ‹ใ‚‰ไธ€ๆ„ใซๆฑ‚ใพใ‚‹ใ€‚ใŸใ ใ—ๅˆ่จˆๆžšๆ•ฐใŒ9999ๆžšไปฅไธ‹ใงใ€ๅˆ่จˆ้‡‘้กใŒใใฃใกใ‚Š $N$ ใซใชใ‚‹ใ“ใจใŒๆกไปถใงใ‚ใ‚‹ใ€‚

DPใซใ—ใ‚ˆใ†ใ‹ใฉใ†ใ‹ๆ‚ฉใ‚“ใงใ—ใพใฃใŸใ€‚ๅˆถ็ด„ๆกไปถใ‚’ไธŠๆ‰‹ใไฝฟใ†ใ€‚

018

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…3: 14ๅˆ†ใ€‚

็ด ็›ดใซๆฑ‚ใ‚ใ‚‹ใ€‚

$L$ ใฏๅŠๅˆ†ใ€ $E$ ใฏ $T$ ใงๅ‰ฒใฃใŸไฝ™ใ‚Šใจใ™ใ‚‹ใ€‚่ฆณ่ฆง่ปŠใฎๅง‹็‚นใ‹ใ‚‰ใฎ่ง’ๅบฆใฏ $rad = E/T$ ใชใฎใงใ€ๅƒใ‚’ๅŸบๆบ–ใซ่ฆณ่ฆง่ปŠใฎ็›ธๅฏพไฝ็ฝฎใฏ $(tx,ty,tz) = (-X, sin(rad) \times L-Y, (1-cos(rad)) \times L)$ ใซใ‚ใ‚‹ใ€‚ๆฑ‚ใ‚ใ‚‹่ง’ๅบฆใฏ $arctan(tz / \sqrt{tx^2 + ty^2})$ ใงใ‚ใ‚‹ใ€‚

Degreeใจradianใฎๅค‰ๆ›ใซๆ‚ฉใ‚“ใงใ—ใพใฃใŸใ€‚

019

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ใ€‚โ˜…6: ่‡ชๅŠ›ใงใฏ่งฃใ‘ใชใ‹ใฃใŸใ€‚

ๅŒบ้–“DP

้‰„ๅ‰‡ๆœฌC18ใจๅŒใ˜ใงใ‚ใ‚‹ใ€‚ๅˆ่ฆ‹ใงใฏๅ…จใ่งฃใ‘ใšใซๆ‚”ใ—ๆถ™ใ‚’ๆตใ—ใŸๅ•้กŒใงใ‚ใ‚‹ใ€‚่งฃๆณ•ใ‚’็Ÿฅใฃใฆใ„ใ‚‹ใจใฏใ„ใˆใ€ไปŠใชใ‚‰30ๅˆ†ใง่งฃใ‘ใ‚‹ใ€‚

ใ‚ณใ‚นใƒˆใฏๅ–ใ‚Š้™คใๆ•ฐใฎ็ต„ใซไพๅญ˜ใ™ใ‚‹ใŒใ€็ต„ใŒๅŒใ˜ใชใ‚‰ใฉใ†ใ„ใ†้ †็•ชใงๅ–ใ‚Š้™คใ„ใŸใ‹ใซใฏๅฝฑ้Ÿฟใ—ใชใ„ใ€‚ใ‚ˆใฃใฆๆœ€็ต‚็š„ใซใฏๅ–ใ‚Š้™คใๅŒบ้–“ใฏๅ…จๅŸŸใซใชใ‚‹ใŒใ€ๅ…จๅŸŸใซใชใ‚‹ใพใง้€ฃ็ถšใ—ใŸ้ƒจๅˆ†ใ‚’ใฉใ†็ต„ใฟๅˆใ‚ใ›ใ‚‹ใ‹ใ‚’DPใง็ถฒ็พ…ใ™ใ‚Œใฐใ‚ˆใ„ใ€‚ใ“ใ‚Œใ‚’ใƒœใƒˆใƒ ใ‚ขใƒƒใƒ—ใซ่€ƒใˆใ‚‹ใ€‚ $A_i$ ใ‹ใ‚‰้€ฃ็ถšใ™ใ‚‹ๆ•ดๆ•ฐใ‚’้™คใใ“ใจใ‚’่€ƒใˆใ‚‹ใ€‚

  • ๆœ€ๅˆใฏไฝ็ฝฎใŒ2้€ฃ็ถšใ™ใ‚‹ๆ•ดๆ•ฐ $[A_i, A_{i+1}] \quad for \quad 1 \leq i \leq n$ ใ‚’้™คใ
  • ๆฌกใซ้€ฃ็ถšใ™ใ‚‹4ๆ•ดๆ•ฐใ‚’้™คใใ€‚ใ“ใ‚Œใฏ $[A_i, A_{i+1}], [A_{i+2}, A_{i+3}]$ ใ‹ $[A_i, A_{i+3}], [A_{i+1}, A_{i+2}]$ ใฎใฉใกใ‚‰ใ‹ใชใฎใงๆœ€ๅฐๅ€คใ‚’ๆŽก็”จใ™ใ‚‹ใ€‚ $[A_i, A_{i+3}]$ ใฏใใฎๅ ดใง่จˆ็ฎ—ใ—ใ€ๆฎ‹ใ‚Šใฏไฝ็ฝฎใŒ2้€ฃ็ถšใ™ใ‚‹ๆ•ดๆ•ฐใ‚’้™คใใ‚ณใ‚นใƒˆใจใ—ใฆๆ—ขใซๅˆ†ใ‹ใฃใฆใ„ใ‚‹ใ€‚
  • ไฝ็ฝฎใŒ $2w \geq 6$ ้€ฃ็ถšใ™ใ‚‹ๆ•ดๆ•ฐใ‚’้™คใใ€‚ใ“ใ‚Œใฏไปฅไธ‹ใฎ้€šใ‚Š็ถฒ็พ…ใงใใ‚‹ใฎใงๆœ€ๅฐๅ€คใ‚’ๆŽก็”จใ™ใ‚‹ใ€‚
    • ไธก็ซฏใ‚’ใคใพใ‚€ $[A_i, A_{i+2w-1}], [A_{i+2}, A_{i+2w-2}]$ ใ€‚ๅ‰่€…ใฏใใฎๅ ดใง่จˆ็ฎ—ใ—ใ€ๅพŒ่€…ใฏๆ—ขใซๆฑ‚ใพใฃใฆใ„ใ‚‹ใ€‚
    • ๅŒบ้–“ใ‚’ๅˆ†ๅ‰ฒใ™ใ‚‹ $1 \leq j \leq w$ ใชใ‚‹ๅ„ $j$ ใซใคใ„ใฆใ€ $[A_i, A_{i+2j-1}], [A_{2j}, A_{i+2w-1}]$ ใ€‚ใฉใกใ‚‰ใ‚‚ๆ—ขใซๆฑ‚ใพใฃใฆใ„ใ‚‹ใ€‚

ใ“ใ‚Œใพใง่ชฟในใŸๅŒบ้–“ใฎๅน…ใ‚’ $2w$, ๅŒบ้–“ใฎๅทฆ็ซฏใฎไฝ็ฝฎใ‚’ $i$ ใจใ—ใฆ $DP[w][i]$ ใ‚’ๆ›ดๆ–ฐใ™ใ‚Œใฐใ‚ˆใใ€ๅŒบ้–“ใ‚’ๅˆ†ๅ‰ฒใ™ใ‚‹ๆ–นๆณ•ใŒ $O(N)$ ใชใฎใง่จˆ็ฎ—้‡ใฏ $O(N^3)$ ใงใ‚ใ‚‹ใ€‚็ญ”ใˆใฏ $DP[w][1]$ ใงใ‚ใ‚‹ใ€‚

020

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…3: 8ๅˆ†ใ€‚

ๆœ‰ๅŠนๆกๆ•ฐ53-bitๆตฎๅ‹•ๅฐๆ•ฐใฎ็ฝ 

ใจๆ€ใ‚ใ‚Œใ‚‹ใฎใง64-bitๆ•ดๆ•ฐใฎ็ฏ„ๅ›ฒใง่จˆ็ฎ—ใ™ใ‚‹ใ€‚ $log_{2}a &lt; b \times log_{2}c \Leftrightarrow 2^{log_{2}a} &lt; 2^{log_{2}c \times b} \Leftrightarrow a &lt; c^b$ ใซๅค‰ๆ›ใ—ใ€ $c^b$ ใ‚’ๆ•ดๆ•ฐๆผ”็ฎ—ใง( std::pow ใ‚’ไฝฟใ‚ใšใซ)่จˆ็ฎ—ใ™ใ‚‹ใ€‚

$x^{y \times z}$ ใฏ ${x^y}^z$ ใงใ‚ใ‚‹ใ€‚ใ†ใฃใ‹ใ‚Š $x^{y+z}$ ใซใ—ใฆใ—ใพใฃใŸใ€‚

021

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ใ€‚โ˜…5: 4ๅˆ†ใ€‚

ๅผท้€ฃ็ตๆˆๅˆ†ๅˆ†่งฃใ™ใ‚‹ใจใ‚ตใ‚คใ‚ฏใƒซใŒๅˆ†ใ‹ใ‚‹ใ€‚ๅ„ใ‚ตใ‚คใ‚ฏใƒซใฎๅคงใใ•ใ‚’ $K$ ใจใ—ใŸใจใใ€ $K(K-1)$ ใŒไบ’ใ„ใซ่กŒใๆฅใงใใ‚‹้ ‚็‚นใฎ็ต„ใฟๅˆใ‚ใ›ๆ•ฐใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ใ™ในใฆใฎใ‚ตใ‚คใ‚ฏใƒซใซใคใ„ใฆ่ถณใ™ใ€‚

022

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…2: 1ๅˆ†ใ€‚

$A,B,C$ ใฎๆœ€ๅคงๅ…ฌ็ด„ๆ•ฐ $g$ ใŒใ€็ซ‹ๆ–นไฝ“ใฎๅคงใใ•ใงใ‚ใ‚‹ใ€‚ $A$ ใ‚’ $g$ ใซใ™ใ‚‹ใซใฏใ€ $A/g-1$ ๅ›žๅˆ‡ใ‚Œใฐใ„ใ„ใ€‚ $B,C$ ใ‚‚ๅŒๆง˜ใงใ‚ใ‚‹ใ€‚

024

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…2: 5ๅˆ†ใ€‚

$A,B$ ใฎ็ตถๅฏพๅ€คใฎๅทฎใฎๅ’Œ $d$ ใ‚’ๅ–ใ‚‹ใ€‚ $d &gt; k$ ใชใ‚‰ No ใงใ‚ใ‚‹ใ€‚ $d \leq k$ ใŒๅฅ‡ๆ•ฐใชใ‚‰ No ใ€ๅถๆ•ฐใชใ‚‰ Yes ใงใ‚ใ‚‹ใ€‚

026

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…2: 43ๅˆ†ใ€‚

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

ๆœจใฎ้ ‚็‚นใ‚’่ตคใจ้ป’ใงไบ’ใ„้•ใ„ใซๅก—ใ‚‹ใ€‚ใฉใฎ้ ‚็‚นใ‹ใ‚‰ๅก—ใฃใฆใ‚‚ใ‚ˆใ„ใ€‚่ตคใจ้ป’ใงๅก—ใฃใŸ้ ‚็‚นใฏ้šฃใ‚Šๅˆใ‚ใชใ„ใ€‚่ตคใ„้ ‚็‚นใจ้ป’ใ„้ ‚็‚นใฎใฉใกใ‚‰ใ‹ไธ€ๆ–นใฏ $N/2$ ๅ€‹ไปฅไธŠใ‚ใ‚‹ใฏใšใชใฎใงใ€ใใ‚Œใ‚‰ใ‚’ๅˆ—ๆŒ™ใ™ใ‚‹ใ€‚

ๆœจใฏไบŒ้ƒจใ‚ฐใƒฉใƒ•ใซใงใใ‚‹ใ“ใจใ‚’็Ÿฅใฃใฆใ„ใ‚‹ใจๅ†ท้™ใซใชใ‚Œใ‚‹ใ€‚

027

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…2: 1ๅˆ†ใ€‚

$S_i$ ใŒๆ—ขใซๅญ˜ๅœจใ™ใ‚‹ใ‹ใฉใ†ใ‹ใ‚’ std::set<std::string> ใง็ฎก็†ใ™ใ‚‹ใ€‚

028

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…4: 8ๅˆ†ใ€‚

ไบŒๆฌกๅ…ƒใ„ใ‚‚ใ™ๆณ• ใใฎใพใพใงใ‚ใ‚‹ใ€‚

029

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…5: 43ๅˆ†ใ€‚

ๅง‹ใ‚ใฆ้…ๅปถ่ฉ•ไพกใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใ‚’ไฝฟใฃใŸใ€‚ใƒŽใƒผใƒ‰ใ‚’ๆ•ดๆ•ฐใ€ๆผ”็ฎ—ใ‚’maxใซใ™ใ‚Œใฐใ‚ˆใ„ใ€‚

030

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…5: 27ๅˆ†ใ€‚

$K=1$ ใชใ‚‰็ญ”ใˆใฏ $N-1$ ใงใ‚ใ‚‹ใ€‚

ใ‚จใƒฉใƒˆใ‚นใƒ†ใƒใ‚นใฎ็ฏฉใฎๅค‰ๅฝขใงใ‚ใ‚‹ใ€‚ๆ—ข็Ÿฅใฎ็ด ๆ•ฐ $2 \leq p \leq \sqrt{N}$ ใงๅ‰ฒใ‚Œใ‚‹ใ ใ‘ๅ‰ฒใฃใฆใฟใ‚‹ใจใ€ $\sqrt{N}$ ไปฅไธ‹ใฎ็ด ๅ› ๆ•ฐใงไฝ•็จฎ้กžๅ‰ฒใ‚ŒใŸใ‹ๅˆ†ใ‹ใ‚‹ใ€‚ใ‚ใจใฏ $\sqrt{N} &lt; i \leq N$ ใซใคใ„ใฆใ€ๆฎ‹ใฃใŸๅ•†ใŒ1ใ‚ˆใ‚Šๅคงใใ‘ใ‚Œใฐ็ด ๆ•ฐใฎใฏใšใชใฎใง็ด ๅ› ๆ•ฐใฎๆ•ฐใ‚’1่ถณใ™ใ€‚

031

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰โ˜…6: ่ซฆใ‚ใŸ

Grundyๆ•ฐใ‚’ๆฑ‚ใ‚ใ‚‹ๅ•้กŒใงใ‚ใ‚‹ใ€‚่งฃ่ชฌใ‚’ใ—ใฃใ‹ใ‚Š่ชญใพใชใ„ใจ็†่งฃใงใใชใ„ใ€‚ๅฏ่ƒฝๆ‰‹ใฎไพๅญ˜ใ‚ฐใƒฉใƒ•ใฎๆœ€็Ÿญ่ท้›ขใจๆฑ‚ใ‚ใŸใฎใงใฏใ ใ‚ใ ใฃใŸใ€‚

032

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…3: 11ๅˆ†ใ€‚

$N=10$ ใชใฎใงใ€ใ™ในใฆใฎ้ †ๅˆ—ใ‚’่ชฟในใ‚‹ใ€‚้ †ๅˆ—ใซใคใ„ใฆใ€ไปฒใŒๆ‚ชใ„้ธๆ‰‹ใฎไธฆใณใŒ็„กใ„ใ‚‚ใฎใซใคใ„ใฆใ€ๆœ€ๅฐใ‚ฟใ‚คใƒ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚

factorial(10)
## [1] 3628800

033

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…2: 8ๅˆ†ใ€‚

ๅฎš็พฉใซใ‚ˆใ‚Š $H,W=1$ ใชใ‚‰ไธ้ฉๅˆ‡ใซใชใ‚‰ใชใ„ใ€‚ใใ‚Œไปฅๅค–ใฏๅ…ˆ้ ญใ‚’1่กŒ็›ฎใ€1ๅˆ—็›ฎใจๆ•ฐใˆใฆใ€ๅถๆ•ฐ่กŒใจๅถๆ•ฐๅˆ—ใจใ‚’็‚น็ฏใ›ใšใ€ๅฅ‡ๆ•ฐ่กŒใ‹ใคๅฅ‡ๆ•ฐๅˆ—ใฎใฟ็‚น็ฏใ™ใ‚‹ๅ ดๅˆใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

034

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…4: 30ๅˆ†ใ€‚

ใƒ‡ใƒใƒƒใ‚ฐใซ่‹ฆใ—ใ‚“ใ ใ€‚ std::multiset::size() ใฏ่ฆ็ด ใฎๆ•ฐใ€ std::map::size() ใฏใ‚ญใƒผใฎๆ•ฐใชใฎใงๆททๅŒใ—ใชใ„ใ€‚ใใ‚Œใจ std::map::operator[] ใฏใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใ‚ณใƒณใ‚นใƒˆใƒฉใ‚ฏใ‚ฟใงไฝœใฃใŸๅ€ค(0)ใŒๆ ผ็ดใ•ใ‚ŒใŸใ‚ญใƒผใ‚’ไฝœใฃใฆใ—ใพใ†ใ€‚ใคใพใ‚Š

if ((size < k) || ((size == k) && (xs[d] != 0))) {}

ใฏใ‚ญใƒผ d ใŒๅข—ใˆใฆใ—ใพใ†ใฎใงใ€

if ((size < k) || ((size == k) && (xs.find(d) != xs.end()))) {}

ใจๆ›ธใ‹ใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„ใ€‚

่งฃใๆ–นใฏๅฐบๅ–ใ‚Šๆณ•ใงใ‚ใ‚‹ใ€‚ๅณๅดใ‚’ไผธใฐใ™ใจ้ƒจๅˆ†ๅˆ—ใซๅซใพใ‚Œใ‚‹่ฆ็ด ใฎ็จฎ้กžใฏๅบƒ็พฉๅ˜่ชฟๅข—ๅŠ (ๅŒใ˜ใ‹ๅข—ใˆใ‚‹)ใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆ $K$ ็จฎ้กžใ‚’่ถ…ใˆใŸใจใ“ใ‚ใพใงๅณๅดใ‚’ไผธใฐใ™ใ€‚ๅณๅดใŒไผธใณใใฃใŸใ‚‰ๅทฆๅดใ‚’ไผธใฐใ™ใจ้ƒจๅˆ†ๅˆ—ใซๅซใพใ‚Œใ‚‹่ฆ็ด ใฎ็จฎ้กžใฏๅบƒ็พฉๅ˜่ชฟๆธ›ๅฐ‘(ๅŒใ˜ใ‹ๆธ›ใ‚‹)ใฎใงใ€ $K$ ็จฎ้กžไปฅไธ‹ใซใชใ‚‹ใพใงไผธใฐใ™ใ€‚

้›†ๅˆใฏ std::map ใงใ€ใ‚ญใƒผใฎ็จฎ้กžใฏ้›†ๅˆใฎ่ฆ็ด ใฎ็จฎ้กžใ€ใ‚ญใƒผใฎๅ€คใฏ่ฆ็ด ใฎๆ•ฐใงใ‚ใ‚‹ใ€‚่ฆ็ด ใฎๆ•ฐใŒ0ใซใชใฃใŸใ‚‰ใ‚ญใƒผใ”ใจๅ‰Š้™คใ™ใ‚‹ใ€‚

035

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…7 ่งฃ่ชฌAC

Auxiliary Tree ใฎไพ‹้กŒใจ็ŸฅใฃใŸไธŠใง่งฃใ„ใŸใ€‚

Auxiliary Tree ใฎๅฎŸ่ฃ…ใฏ ใ“ใกใ‚‰ ใ‚’ๅ‚่€ƒใซใ—ใŸใ€‚

ๆœ€ๅˆใซใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใงใ€ไปปๆ„ใฎ2้ ‚็‚น้–“ใฎLCAใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ๆฌกใซใ‚ฏใ‚จใƒชใซใ‚ใ‚‹้ ‚็‚นใ‹ใ‚‰Auxiliary Treeใ‚’ๆง‹ๆˆใ—ใ€ใใ‚Œใžใ‚Œใฎ้ ‚็‚นใ‹ใ‚‰่ฆช(ๆ นใ‚’้™คใ)ใพใงใฎ่พบใฎ้•ทใ•ใฎๅ’ŒใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

036

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…5: 29ๅˆ†ใ€‚

Convex hull ใงใฏใชใ„ใ€็ญ‰้ซ˜็ทšใงใ‚ใ‚‹ใ€‚

ใƒžใƒณใƒใƒƒใ‚ฟใƒณ่ท้›ขใฎ็ญ‰้ซ˜็ทš $x+y$, $x-y$ ใ‚’ๅฎš็พฉใ—ใ€ใใ‚Œใžใ‚Œใฎ้ ‚็‚นใ‚’็ญ‰้ซ˜็ทšไธŠใฎๅบงๆจ™ใซๅค‰ๆ›ใ™ใ‚‹ใ€‚็ญ‰้ซ˜็ทš้–“ใฎ่ท้›ขใฎๆœ€ๅคงๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

037

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…5: 43ๅˆ†ใ€‚

DPใชใฎใ ใŒใใฎใพใพใงใฏTLEใ™ใ‚‹ใ€‚ $DP[i][r]$ ใ‚’ๆ–™็† $i$ ใพใงไฝœใฃใŸใจใใซใ‚นใƒ‘ใ‚คใ‚นใฎๆฎ‹ใ‚ŠใŒ $r$ ใฎใจใใฎๆ–™็†ใฎไพกๅ€คใฎๅˆ่จˆใจใ™ใ‚‹ใ€‚ $DP[0][W]=1, DP[0][]=-Inf$ ใจใ™ใ‚‹ใ€‚

ๆ–™็† $i+1$ ใซใ‚นใƒ‘ใ‚คใ‚นใ‚’ $L \leq j \leq R$ ไฝฟใ†ใจใ—ใฆๆ–™็†ใฎไพกๅ€คใฎๅˆ่จˆใฏ $DP[i+1][r-j]=max(DP[i+1][r-j], DP[i][r]+V_i)$ ใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ $0 \leq r \leq W$ , $L \leq j \leq R$ ใ”ใจใซ่จˆ็ฎ—ใ™ใ‚‹ใจTLEใ™ใ‚‹ใฎใงๅทฅๅคซใ™ใ‚‹ใ€‚

  • $from[r] = DP[i][r]+V_i$ ใ‚’่จˆ็ฎ—ใ—ใฆใŠใ
  • $to = (W-L)..0$ ใซใคใ„ใฆใ€ $DP[i+1][to]$ ใŒๅ–ใ‚Šใ†ใ‚‹ๅ€คใฎ้›†ๅˆใฏ $from[to+L,to+R]$ ใŒ้‡ใชใ‚‹ๅŒบ้–“ใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆ้‡ใชใฃใฆใ„ใ‚‹ๅŒบ้–“ใฎ้›†ๅˆ $S$ ใ‚’ std::multiset ใง็ฎก็†ใ™ใ‚‹ใ€‚
  • $to$ ใ‚’ไธ€ๅ€‹ๆธ›ใ‚‰ใ™ใ”ใจใซใ€้›†ๅˆ $S$ ใซ $from[to+L]$ ใ‚’ๅข—ใ‚„ใ™ใ€‚ $DP[i+1][r-j]=max(DP[i+1][r-j], max(S))$ ใงใ‚ใ‚‹ใ€‚ $S$ ใฎ่ฆ็ด ๆ•ฐใŒ $R-L+1$ ไปฅไธŠใชใ‚‰ใ€ๆœ€ๅพŒใซ้›†ๅˆใซๅ…ฅใ‚ŒใŸ่ฆ็ด ใ‚’้™คใใ€‚

038

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…3: 7ๅˆ†ใ€‚

$LCM(A,B) = GCD(A,B) \times A \times B$ ใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆ $GCD(A,B) \times A \times B &gt; 10^{18} \Leftrightarrow GCD(A,B) &gt; (10^{18}/AB)$ ใ‚’ๅˆคๅฎšใ™ใ‚‹ใ€‚ใ“ใฎๅผใŒๆˆใ‚Š็ซ‹ใคใชใ‚‰ Large ใ‚’ๅ‡บๅŠ›ใ—ใ€ใใ†ใงใชใ‘ใ‚Œใฐๆฑ‚ใ‚ใŸ $LCM(A,B)$ ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚

039

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…5: 12ๅˆ†ใ€‚

้ ‚็‚น้–“ใฎ่ท้›ขใงใฏใชใใ€่พบใ‚’ไฝ•ๅ›žๆ•ฐใˆใ‚‹ใ‹ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚้ ‚็‚น $a,b$ ใ‚’็ตใถ่พบ $AB$ ใŒใ‚ใ‚‹ใจใ—ใฆใ€่พบ $AB$ ใ‚’ๆ•ฐใˆใ‚‹ๅ›žๆ•ฐใฏ่พบ $AB$ ใ‚’้€šใ‚‰ใšใซ่กŒใ‘ใ‚‹้ ‚็‚นใฎ็ต„ใ€ใคใพใ‚Š้ ‚็‚น $a$ ใ‚ˆใ‚Š็ซฏใจ้ ‚็‚น $b$ ใ‚ˆใ‚Š็ซฏใฎ้ ‚็‚นใฎๆ•ฐใฎ็ฉใงใ‚ใ‚‹ใ€‚ใ‚ˆใฃใฆ่พบใฎไธก็ซฏไปฅ้™ใซไฝ•ๅ€‹้ ‚็‚นใŒใ‚ใ‚‹ใ‹ๆ•ฐใˆใ‚‹ใ€‚

ๆœจใฎๆ นใ‚’้ ‚็‚น1ใจๆฑบใ‚ๆ‰“ใกใ—ใฆใ€DFSใซใ‚ˆใฃใฆ้ƒจๅˆ†ๆœจใฎ้ ‚็‚นๆ•ฐ(้ƒจๅˆ†ๆœจใฎๆ นใ‚’ๅซใ‚€)ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ๆœจใชใฎใง้ ‚็‚น $a$ ใฏ้ ‚็‚น $b$ ใ‚ˆใ‚Šใ‚‚ๆ นใ‹ใ‚‰้ ใ„ใจๅฎšใ‚ใ‚‰ใ‚Œใ‚‹(ใใ†ใงใชใ‘ใ‚Œใฐ $a,b$ ใ‚’ๅ…ฅใ‚Œๆ›ฟใˆใ‚‹)ใ€‚ๆ นใ‹ใ‚‰้ ใ„ใ‹ใฉใ†ใ‹ใฏใ€้ƒจๅˆ†ๆœจใฎๅคงใใ•ใŒๅฐใ•ใ„ๆ–นใŒๆ นใ‹ใ‚‰้ ใ„ใ€‚ ้ ‚็‚น $a$ ใ‚’ๆ นใจใ™ใ‚‹้ƒจๅˆ†ๆœจใฎ้ ‚็‚นๆ•ฐใŒ $K(a)$ ใชใ‚‰ใ€aใ‚ˆใ‚Š็ซฏใจbใ‚ˆใ‚Š็ซฏใฎ้ ‚็‚นใฎๆ•ฐใฎ็ฉใฏ $K(a) \times (N-k(a))$ ใงใ‚ใ‚‹ใ€‚ใ“ใฎๅ’ŒใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

042

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…4: 12ๅˆ†ใ€‚

$K$ ใ‚’9ใงๅ‰ฒใ‚Šๅˆ‡ใ‚Œใชใ‘ใ‚Œใฐ0้€šใ‚Šใงใ‚ใ‚‹ใ€‚

ๅ‹•็š„่จˆ็”ปๆณ•ใงๆฎ‹ใ‚ŠใŒ $i$ ใจใชใ‚‹ใฎใŒ $DP[i=K..0]$ ้€šใ‚Šใจใ™ใ‚‹ใ€‚ $DP[K]=1,DP[]=0$ ใจใ—ใ€ $DP[i-j] =DP[i-j]+DP[i] \quad for \quad j=1..9$ ใงๆ›ดๆ–ฐใ™ใ‚‹ใ€‚็ญ”ใˆใฏ $DP[0]$ ใงใ‚ใ‚‹ใ€‚

043

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…4: 30ๅˆ†ใ€‚

01-BFSใง่งฃใใ€‚ไฝ็ฝฎ $(y,x)$ ใจๆ–นๅ‘(4ๆ–นๅ‘)ใซใคใ„ใฆใ€ๅง‹็‚นใ‹ใ‚‰ใฎ่ท้›ขใ‚’ $dist[y][x][dir]$ ใจใ™ใ‚‹ใ€‚ๆ–นๅ‘ใŒๅŒใ˜ใชใ‚‰่ท้›ขใฏใใฎใพใพใ€ๆ–นๅ‘่ปขๆ›ใ™ใ‚‹ใจใใฏ่ท้›ขใ‚’1ๅข—ใ‚„ใ™ใ€‚

BFSใฏๆฌกใซๆŽข็ดขใ™ใ‚‹ไฝ็ฝฎใจๆ–นๅ‘ใ‚’ใ‚ญใƒฅใƒผใง็ฎก็†ใ™ใ‚‹ใ€‚ใ‚ญใƒฅใƒผใ‹ใ‚‰ๅ–ใ‚Šๅ‡บใ—ใŸๆ™‚่ท้›ขใŒๆœ€็Ÿญใ‚ˆใ‚Š้•ทใ‘ใ‚Œใฐไฝ•ใ‚‚ใ›ใšๆจใฆใ‚‹ใ€‚ใใ†ใ—ใชใ„ใจTLEใ™ใ‚‹ใ€‚ใ‚ญใƒฅใƒผใŒ็ฉบใซใชใฃใŸใจใใ€ $dist[y][x][]$ ใฎๆœ€ๅฐๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

044

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…3: 7ๅˆ†ใ€‚

ใ‚ซใƒผใ‚ฝใƒซใ‚’ๆŒใคใ€‚ใ‚ฏใ‚จใƒช2ใฏใ‚ซใƒผใ‚ฝใƒซใ‚’1ๆธ›ใ‚‰ใ™ใ€‚ใ‚ฏใ‚จใƒช1,3ใฏใ‚ซใƒผใ‚ฝใƒซใ‚’่ถณใ—ใŸไฝ็ฝฎใงๆ‰ฑใ†ใ€‚

045

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…6: 62ๅˆ†ใ€‚

ๅŠน็އ็š„ใซๅ…จๆŽข็ดขใ™ใ‚‹ใ€‚

ๆœ€ๅˆใซไบŒ้ ‚็‚น้–“ใฎ่ท้›ขใฎไบŒไน—ใ‚’ๆธฌใ‚‹ใ€‚ $O(N^2)$ ใชใฎใงใ™ใ็ต‚ใ‚ใ‚‹ใ€‚ๆฌกใซๅฏ่ƒฝใชใ‚ฐใƒซใƒผใƒ— $2^N$ ้€šใ‚Šใซใคใ„ใฆใ€ใ‚ฐใƒซใƒผใƒ—ๅ†…ใฎ้ ‚็‚นใฎๆœ€้•ท่ท้›ขใ‚’ๆธฌใ‚‹ใ€‚

ๅฏ่ƒฝใชใ‚ฐใƒซใƒผใƒ—ๅˆ†ใ‘ใ‚’DFSใงๆฑ‚ใ‚ใฆใ€ใ‚ฐใƒซใƒผใƒ—ๅ†…ใฎ้ ‚็‚นใฎๆœ€้•ท่ท้›ขใŒๆฑ‚ใพใฃใŸใ‚‰ใ€ใใฎๆœ€ๅฐๅ€คใ‚’ๆ›ดๆ–ฐใ™ใ‚‹ใ€‚ๅŠน็އใ‚ˆใDFSใ—ใชใ„ใจTLEใ™ใ‚‹ใ€‚ไปฅไธ‹0-based indexingใง่ฆ็‚นใ‚’ๆŒ™ใ’ใ‚‹ใ€‚

  • ใ‚ฐใƒซใƒผใƒ—็พคใ‚’ std::vector<std::bitset<16>> groups(k) ใงๅฎŸ่ฃ…ใ™ใ‚‹
  • ้ ‚็‚น0ใ‚’ใ‚ฐใƒซใƒผใƒ—0ใซๅ›บๅฎšใ™ใ‚‹
  • ้ ‚็‚นiใ‚’ใ‚ฐใƒซใƒผใƒ— $0..min(i,k-1)$ ใฎใฉใ‚Œใ‹ใซๅซใ‚ใ‚‹ใ€‚ใใ‚Œไปฅๅค–ใฎใ‚ฐใƒซใƒผใƒ—ใซๅฑžใ™ใ‚‹ใจๆ•ฐใˆไธŠใ’ใŒ้‡่ค‡ใ—ใฆTLEใ™ใ‚‹ใ€‚
  • ใฉใฎใ‚ฐใƒซใƒผใƒ—ใซๅ‰ฒใ‚Šๅฝ“ใฆใ‚‹ใ‹ใŒๆœชๆฑบๅฎšใช้ ‚็‚นใฎๆ•ฐใ‚ˆใ‚Šใ€็ฉบใฎใ‚ฐใƒซใƒผใƒ—ใŒๅคšใ‘ใ‚Œใฐๆ‰“ใกๅˆ‡ใ‚‹
  • ใ‚ใ‚‹ใ‚ฐใƒซใƒผใƒ—ใฎๆœ€้•ท่ท้›ขใŒใ€ๆ—ข็Ÿฅใฎๆœ€ๅฐๅ€คไปฅไธŠใชใ‚‰ๆ‰“ใกๅˆ‡ใ‚‹ใ€‚ๆ—ข็Ÿฅใฎๆœ€ๅฐๅ€คใ‚ˆใ‚Š้•ทใ‘ใ‚Œใฐใ€ใซใ™ใ‚‹ใจTLEใ™ใ‚‹ใ€‚

ๅ…ฌๅผ่งฃ่ชฌใฏbitDPใงใ€ไธŠ่จ˜ใจใฏๅฐ‘ใ—็•ฐใชใ‚‹ๆฐ—ใŒใ™ใ‚‹(็พๅœจใฎใ‚ฐใƒซใƒผใƒ—ๆ•ฐใ‚’ๆ›ดๆ–ฐใ—ใฆใ„ใ‚‹่จณใงใฏใชใ„ใฎใง)ใ€‚

046

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ใ€‚โ˜…3: 4ๅˆ†ใ€‚

$A$ ใ‚’46ใงๅ‰ฒใฃใŸไฝ™ใ‚Š + $B$ ใ‚’46ใงๅ‰ฒใฃใŸไฝ™ใ‚Š + $C$ ใ‚’46ใงๅ‰ฒใฃใŸไฝ™ใ‚Š = 46 ใฎๅ€ๆ•ฐใงใ‚ใ‚‹ใ€‚ใชใฎใง $A,B,C$ ใ‚’46ใงๅ‰ฒใฃใŸไฝ™ใ‚ŠใŒ $0..45$ ใซใชใ‚‹ใ‚ˆใ†ใชๆ•ฐใŒไฝ•ๅ€‹ใ‚ใ‚‹ใ‹ๆ•ฐใˆใ‚‹ใ€‚ $A,B$ ใ‚’46ใงๅ‰ฒใฃใŸไฝ™ใ‚Šใ‚’็ทๅฝ“ใŸใ‚Šใ™ใ‚Œใฐ $C$ ใ‚’46ใงๅ‰ฒใฃใŸไฝ™ใ‚Šใฏไธ€ๆ„ใซๆฑบใพใ‚‹ใฎใงใ€ใใ†ใชใ‚‹ๆ•ฐใฎๅ€‹ๆ•ฐใ‚’ๆŽ›ใ‘ใ‚‹ใ€‚

048

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…3: 13ๅˆ†ใ€‚

้ƒจๅˆ†็‚นใ‚’ๅ„ชๅ…ˆๅบฆใ‚ญใƒฅใƒผใซๅ…ฅใ‚Œใฆใ€ๅ€คใŒๆœ€ใ‚‚ๅคงใใช็‰ฉใ‹ใ‚‰ $K$ ๅ€‹ๅ–ใ‚Šๅ‡บใ™ใ€‚้ƒจๅˆ†็‚นใ‚’ๅ„ชๅ…ˆๅบฆใ‚ญใƒฅใƒผใ‹ใ‚‰ๅ–ใ‚Šๅ‡บใ—ใŸใ‚‰ใ€ๅฏพๅฟœใ™ใ‚‹ๅ•้กŒใฎๆบ€็‚นใจ้ƒจๅˆ†็‚นใฎๅทฎใ‚’ๅ„ชๅ…ˆๅบฆใ‚ญใƒฅใƒผใซๅ…ฅใ‚Œใ‚‹ใ€‚ใ™ใงใซ้ƒจๅˆ†็‚นใ‚’ๅ„ชๅ…ˆๅบฆใ‚ญใƒฅใƒผใซๅ…ฅใ‚ŒใŸใ“ใจใŒใ‚ใ‚‹ๅ•้กŒใฏใ€ๅ„ชๅ…ˆๅบฆใ‚ญใƒฅใƒผใซๅ…ฅใ‚Œใชใ„ใ€‚

049

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ ใ€‚โ˜…6: 39ๅˆ†ใ€‚

ๆœ€ๅฐๅ…จๅŸŸๆœจ(MST: Minimum Spanning Tree)ใ‚’ไฝœใ‚‹ๅ•้กŒใจ็ญ‰ไพกใงใ‚ใ‚‹ใ€‚ๅ…ฅๅŠ›ใ‚’0-based indexingใซ่ชญใฟ็›ดใ—ใฆใ€ใ‚ขใ‚คใƒ†ใƒ  $i$ ใฏ $[L_i-1,R_i)$ ใ‚’่ฆ†ใ†ใจใฟใชใ™ใ€‚ใ“ใฎใจใ $L_i-1$ ใจ $R_i$ ใ‚’ๅŒๆ–นๅ‘(็„กๅ‘)ใซ้‡ใฟ $C_i$ ใฎ่พบใง็ตใถใจใ€ $L_i-1$ ใŒๆฑบใพใ‚Œใฐ $R_i$ ใŒๆฑบใพใ‚‹(ใพใŸใฏใใฎ้€†)ใจ่ชญใ‚ใ‚‹ใ€‚ๆฑบใ‚ใ‚‹ใจใฏใฉใ†ใ„ใ†ใ“ใจใ‹ใฏใ€ๅ…ฌๅผ่งฃ่ชฌใซ่ผ‰ใฃใฆใ„ใ‚‹(ใ‚ˆใ็†่งฃใ—ใชใ„ใพใพACใงใใฆใ—ใพใฃใŸ)ใ€‚

ใ‚ขใ‚คใƒ†ใƒ ใ‚’ใ‚ณใ‚นใƒˆใฎๆ˜‡้ †ใซไธฆในๆ›ฟใˆใฆใ€้ ‚็‚น็•ชๅท $0..N$ , ้ ‚็‚นๆ•ฐ $N+1$ , ่พบใฎๆ•ฐ $N$ ใฎMSTใ‚’ไฝœใ‚‹ใ€‚ใ“ใ‚Œใฏunion-findๆœจใชใฉใ‚’ไฝฟใฃใฆๆง‹็ฏ‰ใงใใ‚‹ใ€‚MSTใŒไฝœใ‚Œใชใ‘ใ‚Œใฐ็ญ”ใˆใฏ -1 ใงใ‚ใ‚‹ใ€‚ไฝœใ‚ŒใŸใ‚‰MSTใฎ่พบใฎ้‡ใฟใฎๅ’ŒใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

050

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…3: 2ๅˆ†ใ€‚

้…ใ‚‹DPใงๅฎŸ่ฃ…ใ™ใ‚‹ใ€‚

052

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…3: 4ๅˆ†ใ€‚

ใ‚ใ‚‹ใ‚ตใ‚คใ‚ณใƒญใฎ็›ฎใฎๅ’Œใฏใ€ๅฟ…ใšๅŒใ˜ๅ›žๆ•ฐ่ถณใ™ใ€‚ใคใพใ‚Šใ‚ตใ‚คใ‚ณใƒญใŒไบŒๅ€‹ใฎใจใใ€

$\sum_{i=1..6} \sum_{j=1..6} (A_{i,1} A_{j,2}) = \sum_{i=1..6} A_{i,1} \times \sum_{j=1..6} A_{j,2}$ ใงใ‚ใ‚‹ใ€‚ใ‚ตใ‚คใ‚ณใƒญใŒ3ๅ€‹ไปฅไธŠใ‚ใฃใฆใ‚‚ใ“ใฎ็นฐใ‚Š่ฟ”ใ—ใซใชใ‚‹ใ€‚

054

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…6: 22ๅˆ†ใ€‚

้ซ˜ๆฉ‹ๆ•ฐใฏ1ใšใคๅข—ใˆใฆ้€ฃ้Ž–ใ™ใ‚‹ใ€‚ใคใพใ‚Š

  • ็ ”็ฉถ่€…1ใŒๆ›ธใ„ใŸ่ซ–ๆ–‡ใฎๅ…ฑ่‘—่€…ใฏ้ซ˜ๆฉ‹ๆ•ฐ1
  • ็ ”็ฉถ่€…1ใŒๆ›ธใ„ใŸ่ซ–ๆ–‡ใฎใ€ๅ…ฑ่‘—่€…ใŒๆ›ธใ„ใŸ่ซ–ๆ–‡ใฎๅ…ฑ่‘—่€…ใฏ้ซ˜ๆฉ‹ๆ•ฐ2
  • ็ ”็ฉถ่€…1ใŒๆ›ธใ„ใŸ่ซ–ๆ–‡ใฎใ€ๅ…ฑ่‘—่€…ใŒๆ›ธใ„ใŸ่ซ–ๆ–‡ใฎใ€ๅ…ฑ่‘—่€…ใŒๆ›ธใ„ใŸ่ซ–ๆ–‡ใฎๅ…ฑ่‘—่€…ใฏ้ซ˜ๆฉ‹ๆ•ฐ3

ใ‚’็นฐใ‚Š่ฟ”ใ™ใจๆฑ‚ใพใ‚‹ใ€‚ๅŒใ˜่ซ–ๆ–‡ใจๅŒใ˜่‘—่€…ใ‚’ไบŒๅบฆๆ•ฐใˆใชใ„ใ‚ˆใ†ใซใ™ใ‚‹ใ€‚ๅฎŸ่ณช็š„ใซใ€็ ”็ฉถ่€…1ใ‹ใ‚‰็ ”็ฉถ่€…Nใธใฎๆœ€็Ÿญ่ท้›ขใ‚’ๆฑ‚ใ‚ใ‚‹ใ“ใจใซ็ญ‰ใ—ใ„ใ€‚

ๅ…ฌๅผ่งฃ่ชฌใงใฏ่‘—่€…้–“ใ‚’็›ดๆŽฅ็ตใถใฎใงใฏใชใ่ซ–ๆ–‡ใ‚’็ตŒ็”ฑใ™ใ‚‹ใ“ใจใง่พบใฎๆ•ฐใ‚’ๆŠ‘ใˆใฆใ„ใ‚‹ใŒใ€ไธŠ่จ˜ใจๆœฌ่ณช็š„ใซใฏๅŒใ˜ใงใ‚ใ‚‹ใ€‚่ถ…้ ‚็‚นใ‚’ๅฐŽๅ…ฅใ—ใชใใฆใ‚‚่ซ–ๆ–‡ใŒ่ถ…้ ‚็‚นไปฃใ‚ใ‚Šใซใชใฃใฆใ„ใ‚‹ใจ่จ€ใˆใ‚‹ใ€‚

055

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…2: ๆ•ฐๅๅˆ†ใ€‚

ไน—็ฎ—ใŒ้‡ใ„ใ€‚ๆ•ฐๅญ—ใ‚’้ธใถๆ–นๆณ•ใฏ $N \choose 5$ ้€šใ‚Šใ‚ใ‚‹ใŒใ€ใ“ใ‚Œใ‚’ๅ…จๅˆ—ๆŒ™ใ™ใ‚‹ใจTLEใ™ใ‚‹ใ€‚ $N \choose 4$ ้€šใ‚Šๅˆ—ๆŒ™ใ—ใฆๆฎ‹ใ‚Šใฏ็ทๅฝ“ใŸใ‚Šใ™ใ‚‹ใจTLEใ—ใชใ„ใ€‚

057

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…6: ่ซฆใ‚ใŸ

ใ‚ใ‚‹ใ‚นใ‚คใƒƒใƒ็พคใจ $S$ ใฎxorใ‚’ๅ–ใ‚‹ใจๅ…จ้ƒจใฎใƒ‘ใƒใƒซใŒ0ใซใชใ‚‹ใ“ใจใฏๅˆ†ใ‹ใฃใŸใŒใ€็ต„ใฟๅˆใ‚ใ›ใ‚’ๅˆ—ๆŒ™ใ™ใ‚‹ๆ–นๆณ•ใŒๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸใ€‚XORใง่กŒๅˆ—ใฎๆŽƒใๅ‡บใ—ๆณ•ใ‚’ไฝฟใ†ใฎใŒๆƒณๅฎš่งฃๆณ•ใงใ‚ใ‚‹ใ€‚

058

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…4: 13ๅˆ†ใ€‚

้ณฉใฎๅทฃๅŽŸ็†ใงใ‚ใ‚‹ใ€‚้›ปๅ“ใฎ็Šถๆ…‹ใฏ 100000 ๅ€‹ใ—ใ‹ใชใ„ใฎใ ใ‹ใ‚‰ใ€100000ๅ›žใ‚ˆใ‚Šๅคšใใƒœใ‚ฟใƒณใ‚’ๆŠผใ›ใฐๅฟ…ใšๅŒใ˜็Šถๆ…‹ใ‚’ไบŒๅบฆ้€šใ‚‹ใ€‚ใ“ใ‚Œใ‚’ๅˆๆœŸ็Šถๆ…‹ $0..99999$ ใ‹ใ‚‰ๅŒใ˜็Šถๆ…‹ใ‚’ไบŒๅบฆ้€šใ‚‹ใพใงใฎ็Šถๆ…‹้ท็งปใ‚’ไฝœๆˆใ™ใ‚‹(ใ‚ฏใ‚จใƒชใงใฏใชใ„ใฎใงๅˆๆœŸ็Šถๆ…‹ใฏ $N$ ใ ใ‘่€ƒใˆใ‚Œใฐใ‚ˆใ„)ใ€‚

ใ“ใ‚ŒใŒๅˆ†ใ‹ใ‚Œใฐใ€ๅˆๆœŸ็Šถๆ…‹ $N$ ใ‹ใ‚‰ใƒซใƒผใƒ—ใพใงใจใ€ใƒซใƒผใƒ—ใฎใฉใ“ใงๆญขใพใ‚‹ใ‹ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚

060

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…5: 27ๅˆ†ใ€‚

LIS: Longest Increasing Subsequence ใ‚’ๅทฆๅณใ‹ใ‚‰ๆฑ‚ใ‚ใ‚‹ใ€‚LISใฎๆฑ‚ใ‚ๆ–นใฏ้‰„ๅ‰‡ๆœฌA24ใฎใ‚ณใƒผใƒ‰ใ‚’็”จใ„ใ‚‹(ใŸใ ใ—0-based indexingใซใ—ใฆใ‚ใ‚‹)ใ€‚ๆฑ‚ใ‚ใ‚‹้ƒจๅˆ†ๅˆ—ใฏใ€ๅทฆ็ซฏใ‹ใ‚‰ๅณ่‚ฉไธŠใŒใ‚Šใฎ $L_i$ ๅ€‹ใ€ๅณ็ซฏใ‹ใ‚‰ๅทฆ่‚ฉไธŠใŒใ‚Šใฎ $R_i$ , ้ ‚็‚นใชใฎใง $max(L_i+R_i+1)$ ใงใ‚ใ‚‹ใ€‚

061

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…2: 4ๅˆ†ใ€‚

std::deque ใงๅฎŸ่ฃ…ใ™ใ‚‹ใ€‚

062

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…6: 31ๅˆ†ใ€‚

ๆœ€ๅพŒใฎใƒœใƒผใƒซใ‚’ๅก—ใ‚‹ใŸใ‚ใซใฏ่‡ชๅทฑใƒซใƒผใƒ—ใ—ใ‹ใ‚ใ‚Šใˆใชใ„ใ€‚ใ‚ˆใฃใฆ่‡ชๅทฑใƒซใƒผใƒ—ใŒใชใ„ใจใใฏๅก—ใ‚Œใชใ„ใƒœใƒผใƒซใŒใ‚ใ‚‹ใ€‚

ใ‚ขใ‚คใƒ†ใƒ ใซใคใ„ใฆใ€ $A_i$ ใ‹ใ‚‰ $i$ , $B_i$ ใ‹ใ‚‰ $i$ (ใŸใ ใ— $A_i \ne B_i$ ใฎใจใใซ้™ใ‚‹)ใธใฎๆœ‰ๅ‘ใ‚ฐใƒฉใƒ•ใ‚’ๅผตใ‚‹ใ€‚ๅก—ใ‚Œใ‚‹ใƒœใƒผใƒซใ‚’ใ‚ญใƒฅใƒผใง็ฎก็†ใ—ใ€ๆœ€ๅˆใซ่‡ชๅทฑใƒซใƒผใƒ—ใ™ใ‚‹ใƒœใƒผใƒซใคใพใ‚Š $A_i = i$ ใพใŸใฏ $B_i = i$ ใ‚’ๆบ€ใŸใ™ใƒœใƒผใƒซ $i$ ใ‚’ใ‚ญใƒฅใƒผใซๅŠ ใˆใ‚‹ใ€‚

ใ‚ญใƒฅใƒผใ‹ใ‚‰ใƒœใƒผใƒซใ‚’ๅ–ใ‚Šๅ‡บใ—ใ€ๆœ‰ๅ‘ใ‚ฐใƒฉใƒ•ใฎ่กŒๅ…ˆใŒใ‚ใ‚Šใ€่กŒๅ…ˆใฎใƒœใƒผใƒซใฏใพใ ใ‚ญใƒฅใƒผใซไธ€ๅบฆใ‚‚็ฉใ‚“ใ ใ“ใจใŒใชใ‘ใ‚Œใฐใ‚ญใƒฅใƒผใซ็ฉใ‚€ใ€‚ใ“ใ‚Œใ‚’ใ‚ญใƒฅใƒผใŒ็ฉบใซใชใ‚‹ใพใง็นฐใ‚Š่ฟ”ใ™ใ€‚ไฝตใ›ใฆใ‚ญใƒฅใƒผใ‹ใ‚‰ใƒœใƒผใƒซใ‚’ๅ–ใ‚Šๅ‡บใ—ใŸ้ †็•ชใ‚’่จ˜้Œฒใ™ใ‚‹ใ€‚

ใ‚ญใƒฅใƒผใ‹ใ‚‰ใƒœใƒผใƒซใ‚’ๅ–ใ‚Šๅ‡บใ—ใŸ้ †็•ชใฎ้€†้ †ใŒ็ญ”ใˆใฎไธ€ใคใงใ‚ใ‚‹ใ€‚ใŸใ ใ—ใ‚ญใƒฅใƒผใซๅ…ฅใ‚ŒใŸใ“ใจใฎ็„กใ„ใƒœใƒผใƒซใฏๅก—ใ‚Œใชใ„ใฎใงใ€ๅ–ใ‚Šๅ‡บใ—ใŸ้ †็•ชใŒ $N$ ใ‚ˆใ‚Š็Ÿญใ‘ใ‚Œใฐ -1 ใงใ‚ใ‚‹ใ€‚่‡ชๅทฑใƒซใƒผใƒ—ใŒใชใ‘ใ‚Œใฐไธ€ๅบฆใ‚‚ๅก—ใ‚Œใชใ„ใ€‚

064

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…3: 23ๅˆ†ใ€‚

ใ„ใ‚‚ใ™ๆณ•ใ ใŒใ€ไธญ้–“็ตๆžœใ‚’ๆฑ‚ใ‚ใ‚‰ใ‚Œใ‚‹ใ€‚่ฝใก็€ใ„ใฆ0-based indexingใ™ใ‚‹ใ€‚

ไธไพฟใ•ใŒๅค‰ใ‚ใ‚‹ใฎใฏ $L_{i-1},L_{i}$ ใจ $R_{i},R_{i+1}$ ใ ใ‘ใงไป–ใฏๅค‰ใ‚ใ‚‰ใชใ„ใ€‚ใ‚ˆใฃใฆใ“ใฎไบŒใ‹ๆ‰€(ใŸใ ใ—ไธก็ซฏใ‚’้™คใ)ใฎไธไพฟใ•ใ ใ‘ใ‚’ๆ›ดๆ–ฐใ™ใ‚‹ใ€‚

066

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…5: 20ๅˆ†ใ€‚

$a_{i=1..N}$ ใŒ $0..101$ ใซใชใ‚‹ๆœŸๅพ…ๅ€ค $E_i[0..101]$ ใ‚’ๆฑ‚ใ‚ใ‚Œใฐใ€ $E_i[0..k-1] &gt; k, L_i \leq k \leq R_i$ ใŒ่ปขๅ€’ๆ•ฐใฎๆœŸๅพ…ๅ€คใงใ‚ใ‚‹ใ€‚ใ“ใ“ใงใฏ $N$ ใŒๅฐใ•ใ„ใฎใง็ดฏ็ฉๅ’Œใ‚’ไฝฟใ‚ใชใใฆใ‚‚ใ„ใ„ใ€‚

067

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…2: 11ๅˆ†ใ€‚

0ใซใฏ0ใ‚’ๅ‡บๅŠ›ใ™ใ‚‹ใ€‚8้€ฒๆ•ฐใ‚’ๆ–‡ๅญ—ๅˆ—ใ€9้€ฒๆ•ฐใ‚’ int64_t ใง็ฎก็†ใ™ใ‚‹ใจๆ‰ฑใ„ใ‚„ใ™ใ„ใ€‚ไธ‹ใฎๆกใŒๆ–‡ๅญ—ๅˆ—ใฎๆœ€ๅˆใจๆœ€ๅพŒใฎใฉใกใ‚‰ใชใฎใ‹ๆฐ—ใ‚’ไป˜ใ‘ใ‚‹ใ€‚

068

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…5: 72ๅˆ†ใ€‚

$X_i$, $Y_i$ ใฏ0-based indexingใจใ—ใฆ1ๅผ•ใ„ใฆใŠใใ€‚

$T_i=1$ ใซๅฏพใ—ใฆใ€ $A_{X_{i}},A_{X_{i+1}}, ... ,A_{Y_{i}}$ ใพใงใŒใคใชใŒใฃใฆใ„ใ‚Œใฐใ€ใ“ใ‚Œใ‚‰ใ‹ใ‚‰ๆฑ‚ใ‚ใŸๅ€คใจ $V_i$ ใ‹ใ‚‰ $A_{Y_{i}}$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ“ใจใŒใงใใ‚‹ใ€‚ใชใฎใงใคใชใŒใฃใฆใ„ใ‚‹ใจใฏใฉใ†ใ„ใ†ใ“ใจใ‹ใ€ๅ€คใ‚’ใฉใ†ๆฑ‚ใ‚ใ‚‹ใ‹ใŒ่ชฒ้กŒใงใ‚ใ‚‹ใ€‚

$T_i=0$ ใงไปฅไธ‹ใฎๆ“ไฝœใ‚’ใ™ใ‚Œใฐใ„ใ„ใ€‚

  • $X_i$ ใจ $Y_i=X_i+1$ ใ‚’union-findๆœจใง้€ฃ็ตใ™ใ‚‹
  • ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใฎ $[X_i,X_{i+1})$ ใซ $V_i \times (-1)^{X_i-1}$ ใ‚’่จญๅฎšใ™ใ‚‹ใ€‚ไบคไปฃๅ’Œใจใ„ใ†ใ€‚

$T_i=1$ ใซๅฏพใ—ใฆใ€ ใ‚ปใ‚ฐใƒกใƒณใƒˆๆœจใฎ $prod(X_i,Y_i)$ ใซๅฏพใ™ใ‚‹ๅ€ค $diff$ ใ‚’ไฝฟใฃใฆใ€ $V_i$ ใ‹ใ‚‰ $A_{Y_{i}}$ ใ‚’ๆฑ‚ใ‚ใ‚‹ใ“ใจใŒใงใใ‚‹ใ€‚ใชใœใชใ‚‰ $X_i &lt; Y_i$ ใชใ‚‰ $prod(X_i,Y_i) = (X_i+X_{i+1})(-1)^{X_i} + (X_{i+1}+X_{i+2})(-1)^{X_i+1} + ... + (Y_{i-1}+Y_{i})(-1)^{Y_i-1} = X_i(-1)^{X_i} + Y_{i}(-1)^{Y_i-1}$ ใ ใ‹ใ‚‰ใงใ‚ใ‚‹ใ€‚ๅŒๆง˜ใซ $X_i &gt; Y_i$ ใชใ‚‰ $prod(Y_i,X_i) = Y_i(-1)^{Y_i} + X_{i}(-1)^{X_i-1}$ ใงใ‚ใ‚‹ใ€‚ $X_i = Y_i$ ใชใ‚‰ $X_i = v = Y_i$ ใงใ‚ใ‚‹ใ€‚

ๅ…ƒใฎใ‚ณใƒผใƒ‰ใŒๆกไปถๅˆ†ๅฒใ ใ‚‰ใ‘ใง่ชญใฟใฅใ‚‰ใ„ใฎใงใ€ ใ“ใฎใ‚ˆใ† ใซใพใจใ‚ใ‚‹ใ€‚

$-1^{X_i}$ ใพใŸใฏ $-1^{X_i-1}$ ใฎ้ƒจๅˆ†ใ‚’ $X_i$ ใฎ็ฌฆๅทใจใ—ใฆๆ•ด็†ใ™ใ‚‹ใ€‚

  • $flip = 1 \quad if \quad (X_i &gt; Y_i) \quad else \quad 0$
  • $sign(X_i) = 1 \quad if \quad (X_i + flip) \quad is \quad even \quad else \quad -1$
  • $sign(Y_i) = 1 \quad if \quad (Y_i + flip) \quad is \quad even \quad else \quad -1$

็ฌฆๅทใ‹ใ‚‰ไปฅไธ‹ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚

  • $X_i = Y_i$ ใชใ‚‰ $Y_i = V_i$
  • $X_i \ne Y_i$ ใชใ‚‰ $Y_{i} = (prod(X_i,Y_i) - sign(X_i)V_i) / sign(Y_i)$

069

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…3: 6ๅˆ†ใ€‚

่ท้›ขใŒ2ๅ€‹ใ‚ˆใ‚Š้›ขใ‚Œใ‚Œใฐไฝ•ใงใ‚‚้ธในใ‚‹ใ€‚ $N=1$ ใชใ‚‰ $K$, $N=2$ ใชใ‚‰ $K(K-1)$ , $N &gt; 2$ ใชใ‚‰ $K(K-1){(K-2)}^{(N-2)}$ ใงใ‚ใ‚‹ใ€‚

070

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…4: 35ๅˆ†ใ€‚

Xๅบงๆจ™ใจYๅบงๆจ™ใฏ็‹ฌ็ซ‹ใซ่€ƒใˆใฆใ‚ˆใ„ใ€‚ไธ€ๆฌกๅ…ƒๅบงๆจ™ใซใ‚ใ‚‹็‚น $A..{1..N}$ ใ‹ใ‚‰ใฎใƒžใƒณใƒใƒƒใ‚ฟใƒณ่ท้›ขใฎๅ’Œใ‚’ๆœ€ๅฐๅŒ–ใ™ใ‚‹็‚นใฏ $median(A..{1..N})$ ใงใ‚ใ‚‹ใ€‚้‡ๅฟƒ $mean(A..{1..N})$ ใงใฏใชใ„ใ€‚ใŠใใ‚‰ใไธญๅคฎๅ€คใ ใจใฏๆ€ใฃใŸใŒใ€ๅฎŸ้š›ใซ่ชฟในใ‚‹ใพใงๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸใ€‚ $N$ ใŒๅถๆ•ฐใฎๅ ดๅˆใฏใ€ไธญๅคฎๅ€คใฎๅทฆๅณใฉใกใ‚‰ใฎ่ฆ็ด ใ‚’้ธใ‚“ใงใ‚‚ใ‚ˆใ„ใฎใงใ€ไธญๅคฎๅ€คใจใ—ใฆ0-based indexingใง $A_{\lfloor x/2 \rfloor}$ ใ‚’่ชฟในใ‚‹ใ€‚

073

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…5: ่งฃใ‘ใชใ‹ใฃใŸ

ๆœจDPใงใ‚ใ‚‹ใ€‚ๅ…ฌๅผ่งฃ่ชฌ ใซ่ฉณใ—ใ่ผ‰ใฃใฆใ„ใ‚‹ใ€‚

074

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…6: 35ๅˆ†ใ€‚

ๅทฆใ‹ใ‚‰ๅ…ˆ้ ญ $1..N$ ๆ–‡ๅญ—็›ฎใŒ a ใซใชใ‚‹ใ‚ˆใ†ใซใใ‚ใˆใฆใ„ใใŒใ€ใ„ใฃใŸใ‚“ใใ‚ใˆใŸใ‚‚ใฎใŒๅดฉใ‚Œใฆใ‚‚ใ„ใ„ใจ่€ƒใˆใ‚‹ใ€‚ $ord(x)$ ใ‚’ๆ–‡ๅญ— x ใฎๆ–‡ๅญ—ใ‚ณใƒผใƒ‰ใจใ™ใ‚‹ใ€‚1ๆ–‡ๅญ—็›ฎใŒ x ใฎใจใใใ‚ใˆใ‚‹ๅ›žๆ•ฐใฏ $ord(x)-ord(a)$ ใ€ใคใพใ‚Š a ใชใ‚‰0ๅ›žใ€ b ใชใ‚‰1ๅ›žใ€ c ใชใ‚‰2ๅ›žใงใ‚ใ‚‹ใ€‚ๅŒๆง˜ใซๅทฆใ‹ใ‚‰ๅ…ˆ้ ญ $1..i$ ๆ–‡ๅญ—็›ฎใŒ a ใง $i+1$ ๆ–‡ๅญ—็›ฎใŒ x ใฎใจใใใ‚ใˆใ‚‹ๅ›žๆ•ฐใฏ $2^{i-1} \times (ord(x)-ord(a))$ ใงใ‚ใ‚‹ใ€‚ใ“ใ‚Œใ‚’ $1..N$ ๆ–‡ๅญ—็›ฎใซใคใ„ใฆๅˆ่จˆใ—ใŸใ‚‚ใฎใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ใŠใใ‚‰ใไธๅค‰้‡ใŒใ‚ใ‚‹ใจๆ€ใฃใŸใŒไธๅค‰้‡ใ‚’ๅฐŽๅ‡บใงใใชใ‹ใฃใŸใฎใงใ€ใ‚ขใƒ‰ใƒ›ใƒƒใ‚ฏใซ่งฃใ„ใŸใ€‚ใ“ใฎๅ•้กŒใฎไธๅค‰้‡ใฏๅ…ฌๅผ่งฃ่ชฌใซ่ผ‰ใฃใฆใ„ใ‚‹ใ€‚

075

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…3: 6ๅˆ†ใ€‚

$N$ ใ‚’็ด ๅ› ๆ•ฐๅˆ†่งฃใ—ใ€ $K$ ๅ€‹ใฎ็ด ๅ› ๆ•ฐใ‹ใ‚‰ๆˆใ‚‹ใ“ใจใŒๅˆ†ใ‹ใ‚‹ใ€‚ใƒœใƒผใƒซใ‚’1ๅ€‹ๅฉใใจๅ€‹ๆ•ฐใŒ2ๅ€ใซใชใ‚‹ใฎใงใ€ $\lceil log2(K) \rceil$ ๅ›žๅฉใ‘ใฐใ‚ˆใ„ใ€‚ $N$ ใŒ็ด ๆ•ฐใชใ‚‰ $K=1$ ใงใ‚ใ‚Š0ๅ›žใซใชใ‚‹ใ€‚$log2(K)$ ใฏ std::bit_width ใงๆฑ‚ใพใ‚‹ใ€‚

076

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…3: 7ๅˆ†ใ€‚

$N$ ใƒ”ใƒผใ‚นใฎๅคงใใ•ใฎๅˆ่จˆใŒ10ใฎๅ€ๆ•ฐใงใชใ‘ใ‚Œใฐ No ใงใ‚ใ‚‹ใ€‚ใใ†ใงใชใ‘ใ‚Œใฐใ€ๅˆ่จˆใฎ1/10ใ‚’ $S$ ใจใ™ใ‚‹ใ€‚

ไบŒๅ‘จๅˆ†ใฎ็ดฏ็ฉๅ’Œใ‚’ๅ–ใ‚Šใ€ๅฐบๅ–ใ‚Šๆณ•ใง $S$ ใซใชใ‚‹ใ‚ˆใ†ใชๅŒบ้–“ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚ ๆ™‚่จˆๅ›žใ‚Šใฎๅ…ˆ้ ญใ‚’ $right$ ใจใ—(็ดฏ็ฉๅ’Œใฎๅทฆ็ซฏใงใ‚‚ใ‚ใ‚‹)ใ€ๆœซๅฐพ(็ดฏ็ฉๅ’Œใฎๅณ็ซฏใจใ—ใฆใฏไธ€ใคๅ‰)ใ‚’ $left$ ใจใ™ใ‚‹ใ€‚ไบŒๅ‘จใ‚ใ‚‹ใฎใงๅฐบๅ–ใ‚Šๆณ•ใฎๅง‹็‚น $left &lt; N$ , ๅน… $right-left \leq N$ ใฎ็ฏ„ๅ›ฒใง่ชฟในใ‚‹ใ€‚

078

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…2: 6ๅˆ†ใ€‚

ใใฎ้€šใ‚ŠๅฎŸ่ฃ…ใ™ใ‚‹ใ€‚

079

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…3: 7ๅˆ†ใ€‚

ๅทฆไธŠใ‹ใ‚‰้ †ใซๆƒใˆใฆ่กŒใ‘ใฐใ‚ˆใ„ใ€‚

080

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…6: ่ซฆใ‚ใŸใ€‚

ๅŒ…้™คๅŽŸ็†ใ‚‰ใ—ใ„ใฎใฏๅˆ†ใ‹ใฃใŸใŒใ€ไธ€่ˆฌ่งฃใŒๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸใ€‚ $N$ ่ฆ็ด ใ‹ใ‚‰ใชใ‚‹้›†ๅˆใซใคใ„ใฆ็ฌฆๅทใฏ $-1^{N}$ ใจใ‚ใ‹ใ‚Œใฐ่งฃใ‘ใ‚‹ใ€‚ใ‚ใจใฏ $A_{1..N}$ ใฎๅ…จ็ต„ใฟๅˆใ‚ใ›ใ‚’็ถฒ็พ…ใ™ใ‚Œใฐใ„ใ„ใ€‚

081

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…5: 8ๅˆ†ใ€‚

ใ‚ใ‚‹ใ‚ฐใƒซใƒผใƒ—ใฎๆœ€ไฝŽ่บซ้•ท $minH$ ใจๆœ€ไฝŽไฝ“้‡ $minW$ ใ‚’ๆฑบใ‚ๆ‰“ใกใ™ใ‚‹ใ€‚ใใ†ใ™ใ‚Œใฐใใ‚Œใžใ‚Œใ‚’ๆฑบใ‚ๆ‰“ใกใ—ใฆ $5000^2$ ๅ›žใฎใƒซใƒผใƒ—ใ‚’ๅ›žใ›ใฐ่งฃใ‘ใ‚‹ใ€‚

ๆœ€ๅˆใซใ‚ใ‚‹่บซ้•ท $1..5000$ ใ‚’ใ‚ญใƒผใจใ—ใฆใ€ใใ‚Œใžใ‚Œใฎไบบใฎไฝ“้‡ $1..5000$ ใ‚’ใƒ™ใ‚ฏใ‚ฟใจใ—ใฆๆŒใคใ€‚ใ“ใ“ใ‹ใ‚‰ๆœ€ไฝŽ่บซ้•ท $minH$ ใ‚’ๅฐบๅ–ใ‚Šๆณ•ใงๅค‰ใˆใคใคใ€ ่บซ้•ท $[minH,minH+K]$ ใฎไบบใฎไฝ“้‡ใฎใƒ’ใ‚นใƒˆใ‚ฐใƒฉใƒ ใ‚’ไฝœใ‚‹ใ€‚

ๆœ€ไฝŽ่บซ้•ท $minH$ ใ‚’ๆฑบใ‚ๆ‰“ใกใ—ใŸใ‚‰ใ€ๆœ€ไฝŽไฝ“้‡ $[minW,minW+K]$ ใ‚’ใ‚„ใฏใ‚Šๅฐบๅ–ใ‚Šๆณ•ใงๅค‰ใˆใ‚‹ใจใ€ใ‚ฐใƒซใƒผใƒ—ใซๅฑžใ™ใ‚‹ไบบๆ•ฐใŒๅˆ†ใ‹ใ‚‹ใ€‚ใ“ใฎๆœ€ๅคงๅ€คใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

ใƒ’ใ‚นใƒˆใ‚ฐใƒฉใƒ ใฎๆ›ดๆ–ฐใฏใ€ๆœ€ไฝŽ่บซ้•ท $minH$ ใ‚’1ๅข—ใ‚„ใ—ใŸใ‚‰่บซ้•ท $minH$ ใฎไบบใฎไฝ“้‡ใ‚’ๆŠœใ‘ใฐใ„ใ„ใ€‚ใชใฎใงใƒ’ใ‚นใƒˆใ‚ฐใƒฉใƒ ใฎๆ›ดๆ–ฐๅ›žๆ•ฐใฏๅ…จไฝ“ใง $O(N)$ ๅ›žใงใ‚ใ‚‹ใ€‚

ไบŒๆฌกๅ…ƒ็ดฏ็ฉๅ’Œใ‚’ไฝฟใ†ใจ ใ‚ใฃใ•ใ‚Š ่งฃใ‘ใ‚‹ใ€‚

082

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…3: 100ๅˆ†ใ€‚

$1..R$ ใพใงใฎๆ–‡ๅญ—ๆ•ฐใ‹ใ‚‰ $1..(L-1)$ ใพใงใฎๆ–‡ๅญ—ๆ•ฐใ‚’ๅผ•ใ‘ใฐใ‚ˆใ„ใ€‚ $1..n$ ใฎๆ–‡ๅญ—ๆ•ฐใฏ $n$ ใŒ $w = 1 + \lceil log10(n) \rceil$ ๆกใ ใจใ—ใฆ $i$ ๆก็›ฎใซใคใ„ใฆ

  • $i &lt; w$ ใชใ‚‰ $i \times (10^{i} + 10^{i-1} - 1) \times (10^{i} - 10^{i-1}) / 2$
  • $i = w$ ใชใ‚‰ $i \times (n + 10^{i}) \times (n - 10^{i-1} + 1) / 2$

ใงใ‚ใ‚‹ใ€‚ $mod 10^{9}+7$ ใซใŠใ„ใฆใ€2ใงๅ‰ฒใ‚‹ๆ“ไฝœใฏๆœ€ๅพŒใซ่กŒใ‚ใชใ„ใจWAใ™ใ‚‹ใ€‚ใ“ใ‚Œใงไธ€ๆ™‚้–“ๅŠๆบถใ‹ใ—ใŸใ€‚ใƒฉใ‚คใƒ–ใƒฉใƒชๅŒ–ใ™ใ‚‹ใจ ใ“ใกใ‚‰ ใฎใ‚ˆใ†ใซใชใ‚‹ใ€‚

้™ค็ฎ—ใฎไฝ็ฝฎใ‚’้–“้•ใˆใชใ‘ใ‚Œใฐ atcoder/modint ใงๆ™ฎ้€šใซ่งฃใ‘ใ‚‹ใ€‚

083

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…6: ้ƒจๅˆ†็‚น 52ๅˆ†ใ€‚ๆบ€็‚นใฏ่ซฆใ‚ใŸใ€‚

ๆบ€็‚น่งฃๆณ•ใ‚’ใพใ ็†่งฃใ—ใฆใ„ใชใ„ใ€‚

084

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…3: 8ๅˆ†ใ€‚

ๅŒ…้™คๅŽŸ็†ใ‚’ไฝฟใ†ใ€‚ๅŒใ˜ๆ–‡ๅญ—ใŒไธฆใ‚“ใงใ„ใ‚‹้ƒจๅˆ†ๆ–‡ๅญ—ๅˆ—ใ€ใคใพใ‚Šใใ‚Œใžใ‚Œใฎใƒฉใƒณใƒฌใƒณใ‚ฐใ‚นใ‚’ๆ•ฐใˆใ‚‹ใ€‚ๆ–‡ๅญ—ๅˆ—ๅ…จไฝ“ใงๅ–ใ‚Šใ†ใ‚‹็ต„ใฟๅˆใ‚ใ›ใฏ $N(N-1)/2$ ใ€ ้•ทใ• $L$ ใฎใƒฉใƒณใซใคใ„ใฆใฏ $L(L-1)/2$ ใชใฎใงๅผ•ใใจๆฎ‹ใ‚ŠใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

085

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…4: 27ๅˆ†ใ€‚

ๅ…จๆŽข็ดขใง่งฃใ‘ใ‚‹ใ€‚ไธŠ้™ใ‚’ $a \leq 10^4, b \leq 10^6$ ใจๆฑบใ‚ๆ‰“ใกใ™ใ‚‹ใจWAใ™ใ‚‹ใ€‚็ด ็›ดใซ $a^3 \leq k, b^2 \leq k/a$ ใงใ‚ฌใƒผใƒ‰ใ™ใ‚‹ใจACใ™ใ‚‹ใ€‚

ๆƒณๅฎš่งฃๆณ•ใฏ็ด„ๆ•ฐใ‚’ๅˆ—ๆŒ™ใ™ใ‚‹ใ€‚็ขบใ‹ใซใ“ใฎๆ–นใŒ้€Ÿใ„ใ€‚ๆผ”็ฎ—ใซ ๆฐ—ใ‚’ไป˜ใ‘ใ‚‹ ๅฟ…่ฆใŒใ‚ใ‚Šใ€ไน—็ฎ—ใ‚’้›‘ใซไฝฟใ†ใจใ‚ชใƒผใƒใƒผใƒ•ใƒญใƒผใ—ใฆREใ™ใ‚‹ใ€‚

086

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…4: 34ๅˆ†ใ€‚

$w_i$ ใฎๆœ€ๅคงๆกๆ•ฐ $width=1 + \lfloor log2(max(w_i)) \rfloor$ ใซใคใ„ใฆใ€$A_i$ ใ‚’ไบŒ้€ฒๆ•ฐ่กจ่จ˜ใ—ใŸใจใใฎใ™ในใฆใฎๆกใฏ็‹ฌ็ซ‹ใซ่€ƒใˆใฆใ‚ˆใ„ใ€‚ๆœ€ๅคงๆกๆ•ฐใ‚’่ถ…ใˆใ‚‹ๆกใฏๅ…จใƒ“ใƒƒใƒˆ0ใชใฎใง่€ƒใˆใชใ„ใ€‚

ๆกไปถ1ใ‚’ใ‚ฏใ‚จใƒชใจ็งฐใ—ใฆใ“ใ†่ชญใฟๆ›ฟใˆใ‚‹ใ€‚ $w_i$ ใฎไบŒ้€ฒๆ•ฐ่กจ่จ˜ใ—ใŸใจใใฎๅ„ใƒ“ใƒƒใƒˆ $i=0..60$ ใซใคใ„ใฆ

  • ใƒ“ใƒƒใƒˆ $i$ ใŒ0ใชใ‚‰ใ€ $A_x,A_y,A_z$ ใฎใƒ“ใƒƒใƒˆ $i$ ใ‚’ใ™ในใฆ0ใซใ—ใชใ‘ใ‚Œใฐใ‚‰ใชใ‚‰ใชใ„
  • ใƒ“ใƒƒใƒˆ $i$ ใŒ1ใชใ‚‰ใ€ $A_x,A_y,A_z$ ใฎใƒ“ใƒƒใƒˆใฎๅฐ‘ใชใใจใ‚‚ไธ€ใคใ‚’1ใซใ—ใชใ‘ใ‚Œใฐใชใ‚‰ใชใ„

ๆกไปถใ‚’ใ™ในใฆ่ชญใฟ่พผใ‚“ใ ใ‚‰ใƒ‘ใ‚ฟใƒผใƒณใ‚’ๅ…จๆŽข็ดขใ™ใ‚‹ใ€‚ใƒ“ใƒƒใƒˆไฝ็ฝฎ $pos=0..width$ ใซใคใ„ใฆไปฅไธ‹ใ‚’ๆฑ‚ใ‚ใ‚‹ใ€‚

  • ใƒ“ใƒƒใƒˆใƒ‘ใ‚ฟใƒผใƒณ $0..(2^{n}-1)$ ใ‚’ใ€ $A_0..A_{N-1}$ ใฎใƒ“ใƒƒใƒˆ $pos$ ใ‚’0ใซใ™ใ‚‹ใ‹1ใซใ™ใ‚‹ใ‹ใซๅฏพๅฟœใ•ใ›ใฆใ€ๆกไปถใ‚’ๆบ€ใŸใ™ใ‹ๅ…จๆŽข็ดขใ™ใ‚‹ใ€‚
    • 0ใซใ™ใ‚‹ใƒ“ใƒƒใƒˆใฏใ€ๅฎŸ้š›ใซใใ†ใชใฃใฆใ„ใ‚‹ใ‹ใฉใ†ใ‹่ชฟในใ‚‹
    • ใใ†ใงใชใ‘ใ‚Œใฐใ€ใ™ในใฆใฎใ‚ฏใ‚จใƒชใ‚’ๆบ€ใŸใ™ใ‹ใฉใ†ใ‹่ชฟในใ‚‹

ๅ„ใƒ“ใƒƒใƒˆไฝ็ฝฎใซใคใ„ใฆๅ–ใ‚Šใ†ใ‚‹ใƒ“ใƒƒใƒˆใƒ‘ใ‚ฟใƒผใƒณใฎๆ•ฐใฎ็ฉใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚

087

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…5: ่ซฆใ‚ใŸ

ๆ•ฐใˆใ‚‹ใฎใฏ็‰‡ๆ–นๅ‘ใงใ‚ใ‚‹ใ€‚ใƒฏใƒผใ‚ทใƒฃใƒซใƒ•ใƒญใ‚คใƒ‰ๆณ•ใจไบŒๅˆ†ๆŽข็ดขใง่งฃใ‘ใ‚‹ใ“ใจใพใงใฏๅˆ†ใ‹ใฃใŸใŒใ€ใฉใ†ใ—ใฆใ‚‚WAใŒๅ–ใ‚Šๅˆ‡ใ‚Œใชใ‹ใฃใŸใ€‚ๅ…ฌๅผ่งฃ่ชฌใ‚’่ชญใ‚“ใงใ€ใฉใ‚“ใช $X$ ใ‚’้ธใ‚“ใงใ‚‚ $K$ ้€šใ‚Šใ‚’่ถ…ใˆใ‚‹ใชใ‚‰0้€šใ‚Šใ ใจใ„ใ†ใ“ใจใŒๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸ(ใ“ใ‚ŒใŒๅˆ†ใ‹ใ‚‰ใชใใฆ $\infty$ ใซใ—ใฆใ—ใพใฃใŸ)ใ€‚ใ“ใ“ใพใงๅˆ†ใ‹ใ‚Œใฐใ€ $K$ ้€šใ‚Šใ‚’่ถ…ใˆใ‚‹ $X$ ใฎๆ•ฐใ‹ใ‚‰ใ€ $K$ ้€šใ‚ŠไปฅไธŠใซใชใ‚‹ $X$ ๆ•ฐใ‚’ๅผ•ใ„ใŸใ‚‚ใฎใŒ็ญ”ใˆใงใ‚ใ‚‹ใ€‚ใŸใ ใ—ใ€

  • $K$ ้€šใ‚Šใ‚’่ถ…ใˆใ‚‹ $X_{K+1}$ ใŒ็„ก้™ใซใ‚ใ‚‹ใชใ‚‰0้€šใ‚Š
  • $K$ ้€šใ‚ŠไปฅไธŠใฎใ‚‹ $X_{K}$ ใŒ็„ก้™ใซใ‚ใ‚‹ใชใ‚‰็„ก้™ๅคง้€šใ‚Š

088

ใ‚ณใƒผใƒ‰ใฏใ“ใกใ‚‰ โ˜…6: ่ซฆใ‚ใŸใ€‚

ๅ’ŒใŒ8889้€šใ‚ŠใชใฎใงDFSใง่ฆ‹ใคใ‹ใ‚‹ใ ใ‚ใ†ใจใฏไบˆๆƒณใ—ใŸใŒใ€ใฉใ†DFSใงๆŽข็ดขใ™ใ‚Œใฐ่‰ฏใ„ใ‹ใŒๅˆ†ใ‹ใ‚‰ใชใ‹ใฃใŸใ€‚

ๅฎŸใฏใ‚ซใƒผใƒ‰ $1..N$ ใ‚’ไฝฟใ†/ไฝฟใ‚ใชใ„ใจใ„ใ†ใ‚ซใƒผใƒ‰ใฎ้›†ๅˆใ‚’ไฝœใ‚Šใ€ๅ’ŒใŒ $\sum_{i} A_i$ ใซใชใ‚‹ใซใชใ‚‹ใ‚ซใƒผใƒ‰ใฎ้›†ๅˆใŒ2ๅ€‹ใฟใคใ‹ใฃใŸใ‚‰ๅ‡บๅŠ›ใ—ใฆๅณ็ต‚ไบ†ใ™ใ‚Œใฐใ„ใ„ใ€‚ใชใฎใงDFSใฏใ‚ซใƒผใƒ‰ $1..N$ ใ‚’ไฝฟใ†/ไฝฟใ‚ใชใ„ใ‚’่ฉฆใ™ใ ใ‘ใงใ„ใ„ใ€‚ใ‚ซใƒผใƒ‰ใฎ้›†ๅˆใ‚’ใฟใฆใ€ๆฌกใซๅŠ ใˆใ‚‹ในใใ‚ซใƒผใƒ‰ใŒๅŒๅฑ…ใงใใชใ„ใชใ‚‰้™คๅค–ใ™ใ‚‹ใฎใŒ้‡ใใ†ใ ใŒใ€C++ใง4 msecใ—ใ‹ๆŽ›ใ‹ใ‚‰ใชใ„ใฎใงๅ•้กŒใซใชใ‚‰ใชใ„ใ€‚

ไธ€่ฆ‹ใ™ใ‚‹ใจ่จˆ็ฎ—้‡ใŒ $2^N$ ใ ใŒใ€ๅฎŸใฏ $\sum_{i} A_i \leq 8888$ ใฎๅˆถ็ด„ใŒใ‚ใ‚‹ใฎใง2ๅ€‹ใฟใคใ‹ใ‚‹ใฎใฏๆ„ๅค–ใจๆ—ฉใ„(ๆญฃ็ขบใช่€ƒๅฏŸใฏๅ…ฌๅผ่งฃ่ชฌใซใ‚ใ‚‹)ใ€‚ใ“ใ‚Œใ‚’้ณฉใฎๅทฃๅŽŸ็†ใจๅ…ฌๅผ่งฃ่ชฌใงใฏๅ‘ผใ‚“ใงใŠใ‚Šใ€่จˆ็ฎ—้‡ใ‚’่ฆ‹ๆŠœใใฎใŒๆ•™่จ“ใงใ‚ใ‚‹ใ€‚

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