์ธ๊ทธ๋จผํธ ํธ๋ฆฌ https://www.acmicpc.net/blog/view/9 ๋ฐฑ์ค๋ ๊ธ ๋ฐฐ์ด ํฌ๊ธฐ ๊ฒฐ์ ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ C++์ ๊ฒฝ์ฐ, vector ์๋ฃํ์ ์ฌ์ฉํ๋๋ฐ python์ผ๋ก ๊ตฌํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค. ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์ผ๋ง๋ ๋์ด์ผ ํ ์ง ๊ฐ๋ ํ๊ธฐ ์ํด ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํด๋ณด์. 2์ ์ ๊ณฑ ์๊ฐ ๋ฆฌํ ๋ ธ๋์ ์(n)๋ก ์ฃผ์ด์ง๋ค๋ฉด ( ๋ถ์ํด์ผํ data ๊ฐฏ์๊ฐ 2์ ์ ๊ณฑ ์๋ผ๋ฉด ) ๊ฐ ๋จ๊ณ๋ง๋ค 1/2์ฉ ์ค์ด๋๊ฐ๋ฏ๋ก log(n)์ด ํ์ํ ์ด ๋จ๊ณ(ํ์ดํ)๊ฐ ๋๊ณ ์ ์ฒด ์ธต์ ๊ฐฏ์, ์ฆ ๋์ด(h)๋ log(n)+1์ด ๋๋ค. ์ต์์ ๋ ธ๋๋ถํฐ 2^(0)๊ฐ์ ๋ ธ๋๋ก ์์ํ์ฌ ์ธต์ด ์ฆ๊ฐํ ์๋ก 2์ ์ง์ ๋ํ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๊ฝ์ฐฌ ์ด์ค ํธ๋ฆฌ(full binary tree)์ ์ด ๋ ธ๋ ..
๊ณต์ฃผ๋์ ๊ตฌํด๋ผ! ์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 1 ์ด 256 MB 2397 551 418 22.012% ๋ฌธ์ ์ฉ์ฌ๋ ๋ง์์ด ์จ๊ฒจ๋์ ๊ณต์ฃผ๋์ ๊ตฌํ๊ธฐ ์ํด (N, M) ํฌ๊ธฐ์ ์ฑ ์ ๊ตฌ (1,1)์ผ๋ก ๋ค์ด์๋ค. ๋ง์์ ์ฉ์ฌ๊ฐ ๊ณต์ฃผ๋ฅผ ์ฐพ์ง ๋ชปํ๋๋ก ์ฑ์ ์ฌ๋ฌ ๊ตฐ๋ฐ ๋ง๋ฒ ๋ฒฝ์ ์ธ์๋์๋ค. ์ฉ์ฌ๋ ํ์ฌ์ ๊ฐ์ง๊ณ ์๋ ๋ฌด๊ธฐ๋ก๋ ๋ง๋ฒ ๋ฒฝ์ ํต๊ณผํ ์ ์์ผ๋ฉฐ, ๋ง๋ฒ ๋ฒฝ์ ํผํด (N, M) ์์น์ ์๋ ๊ณต์ฃผ๋์ ๊ตฌ์ถํด์ผ๋ง ํ๋ค. ๋ง์์ ์ฉ์ฌ๊ฐ ๊ดด๋กญํ๊ธฐ ์ํด ๊ณต์ฃผ์๊ฒ ์ ์ฃผ๋ฅผ ๊ฑธ์๋ค. ์ ์ฃผ์ ๊ฑธ๋ฆฐ ๊ณต์ฃผ๋ T์๊ฐ ์ด๋ด๋ก ์ฉ์ฌ๋ฅผ ๋ง๋์ง ๋ชปํ๋ค๋ฉด ์์ํ ๋๋ก ๋ณํ๊ฒ ๋๋ค. ๊ณต์ฃผ๋์ ๊ตฌ์ถํ๊ณ ํ๋ฌํฌ์ฆ๋ฅผ ๋ฐ๋์ ํ๊ณ ์ถ์ ์ฉ์ฌ๋ T์๊ฐ ๋ด์ ๋ฐ๋์ ๊ณต์ฃผ๋์ด ์๋ ๊ณณ์ผ๋ก ๋๋ฌํด์ผ ํ๋ค. ์ฉ์ฌ๋ ํ ์นธ์ ์ด๋..
๋ฌํฝ์ด ๋ฆฌ์คํธ ์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 1 ์ด 256 MB 597 219 175 40.984% ๋ฌธ์ ์์ง์ด๋ ๋ฌํฝ์ด๋ฅผ ์ข์ํ๋ค. ๋ฌํฝ์ด๋ฅผ ๋๋ฌด๋๋ฌด ์ข์ํ๊ธฐ ๋๋ฌธ์ ํน์ ํ ๋ชจ์์ ๋จ๋ฐฉํฅ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋ฌํฝ์ด ๋ฆฌ์คํธ๋ผ๋ ์ด๋ฆ์ ๋ถ์ฌ์ฃผ์๋ค. ์ผ๋ฐ์ ์ธ ์ ํ ๋จ๋ฐฉํฅ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๊ฐ ๋ ธ๋ ๋ฒํธ๋ฅผ ์ฐ๊ฒฐ๋ ์์๋๋ก 1, 2, ..., N์ด๋ผ ํ์. ์ด๋ N๋ฒ ๋ ธ๋๋ ์๋ฌด ๋ ธ๋๋ ๊ฐ๋ฆฌํค์ง ์๋๋ฐ, ์ฌ๊ธฐ์ N๋ฒ ๋ ธ๋๊ฐ 1๋ฒ ๋ ธ๋๋ฅผ ์ ์ธํ ์์์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌ์ผ ์ฌ์ดํด์ ์ด๋ฃจ๊ฒ ๋๋ ๋ฆฌ์คํธ๋ฅผ ๋ฌํฝ์ด ๋ฆฌ์คํธ๋ผ๊ณ ํ๋ค. ๋ฌํฝ์ด ๋ฆฌ์คํธ๋ ๊ฐ ๋ ธ๋๋น ํ๋์ ์ ์๋ฅผ ์ ์ฅํ๋ค. ์ฆ, ๋ฌํฝ์ด ๋ฆฌ์คํธ๋ ๋ค์๊ณผ ๊ฐ์ด ์๊ธด ์ฐ๊ฒฐ๋ฆฌ์คํธ์ด๋ค. ๋ ธ๋ ์์ ์๋ ์ ์ฅ๋ ๊ฐ์ ๋ปํ๋ค. "๋ฌํฝ์ ๋ฌํฝ์ 1๋ฒ ๋ ธ๋๋ถํฐ ํ ์นธ์ฉ..
์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 2 ์ด 128 MB 20321 8384 6181 41.113% ๋ฌธ์ ์ด๋ค ์์ฐ์ N์ ๊ทธ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ๊ณฑ์๋ค์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ค. ์๋ฅผ ๋ค์ด 11=32+12+12(3๊ฐ ํญ)์ด๋ค. ์ด๋ฐ ํํ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ๋ ์ ์๋๋ฐ, 11์ ๊ฒฝ์ฐ 11=22+22+12+12+12(5๊ฐ ํญ)๋ ๊ฐ๋ฅํ๋ค. ์ด ๊ฒฝ์ฐ, ์ํ์ ์ํฌ๋ผํ ์ค๋ “11์ 3๊ฐ ํญ์ ์ ๊ณฑ์ ํฉ์ผ๋ก ํํํ ์ ์๋ค.”๋ผ๊ณ ๋งํ๋ค. ๋ํ 11์ ๊ทธ๋ณด๋ค ์ ์ ํญ์ ์ ๊ณฑ์ ํฉ์ผ๋ก ํํํ ์ ์์ผ๋ฏ๋ก, 11์ ๊ทธ ํฉ์ผ๋ก์จ ํํํ ์ ์๋ ์ ๊ณฑ์ ํญ์ ์ต์ ๊ฐ์๋ 3์ด๋ค. ์ฃผ์ด์ง ์์ฐ์ N์ ์ด๋ ๊ฒ ์ ๊ณฑ์๋ค์ ํฉ์ผ๋ก ํํํ ๋์ ๊ทธ ํญ์ ์ต์๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์..
์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 1 ์ด 256 MB 16367 3904 2522 25.125% ๋ฌธ์ ํ์คํ ๊ทธ๋จ์ ์ง์ฌ๊ฐํ ์ฌ๋ฌ ๊ฐ๊ฐ ์๋์ชฝ์ผ๋ก ์ ๋ ฌ๋์ด ์๋ ๋ํ์ด๋ค. ๊ฐ ์ง์ฌ๊ฐํ์ ๊ฐ์ ๋๋น๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, ๋์ด๋ ์๋ก ๋ค๋ฅผ ์๋ ์๋ค. ์๋ฅผ ๋ค์ด, ์ผ์ชฝ ๊ทธ๋ฆผ์ ๋์ด๊ฐ 2, 1, 4, 5, 1, 3, 3์ด๊ณ ๋๋น๊ฐ 1์ธ ์ง์ฌ๊ฐํ์ผ๋ก ์ด๋ฃจ์ด์ง ํ์คํ ๊ทธ๋จ์ด๋ค. ํ์คํ ๊ทธ๋จ์์ ๊ฐ์ฅ ๋์ด๊ฐ ํฐ ์ง์ฌ๊ฐํ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ ๋ ฅ์ ํ ์คํธ ์ผ์ด์ค ์ฌ๋ฌ ๊ฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ์ง์ฌ๊ฐํ์ ์ n์ด ๊ฐ์ฅ ์ฒ์์ผ๋ก ์ฃผ์ด์ง๋ค. (1 ≤ n ≤ 100,000) ๊ทธ ๋ค์ n๊ฐ์ ์ ์ h1, ..., hn (0 ≤ hi ≤ 1,000,000,..
์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 2 ์ด 256 MB 9503 5463 4173 58.667% ๋ฌธ์ N×Nํฌ๊ธฐ์ ํ๋ ฌ๋ก ํํ๋๋ ์ข ์ด๊ฐ ์๋ค. ์ข ์ด์ ๊ฐ ์นธ์๋ -1, 0, 1์ ์ธ ๊ฐ ์ค ํ๋๊ฐ ์ ์ฅ๋์ด ์๋ค. ์ฐ๋ฆฌ๋ ์ด ํ๋ ฌ์ ์ ์ ํ ํฌ๊ธฐ๋ก ์๋ฅด๋ ค๊ณ ํ๋๋ฐ, ์ด๋ ๋ค์์ ๊ท์น์ ๋ฐ๋ผ ์๋ฅด๋ ค๊ณ ํ๋ค. ๋ง์ฝ ์ข ์ด๊ฐ ๋ชจ๋ ๊ฐ์ ์๋ก ๋์ด ์๋ค๋ฉด ์ด ์ข ์ด๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค. (1)์ด ์๋ ๊ฒฝ์ฐ์๋ ์ข ์ด๋ฅผ ๊ฐ์ ํฌ๊ธฐ์ 9๊ฐ์ ์ข ์ด๋ก ์๋ฅด๊ณ , ๊ฐ๊ฐ์ ์๋ฆฐ ์ข ์ด์ ๋ํด์ (1)์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค. ์ด์ ๊ฐ์ด ์ข ์ด๋ฅผ ์๋์ ๋, -1๋ก๋ง ์ฑ์์ง ์ข ์ด์ ๊ฐ์, 0์ผ๋ก๋ง ์ฑ์์ง ์ข ์ด์ ๊ฐ์, 1๋ก๋ง ์ฑ์์ง ์ข ์ด์ ๊ฐ์๋ฅผ ๊ตฌํด๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ N(1≤N≤3^7, N์ 3^..
https://www.acmicpc.net/problem/5620 ์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 1 ์ด 256 MB 1700 558 294 40.664% ๋ฌธ์ ํ๋ฉด์์ n๊ฐ์ ์ (P1, .... , Pn) ์ด ๋์ฌ์ ธ์๋ค๊ณ ํ์ ๋, ๊ฑฐ๋ฆฌ๊ฐ ์ต์์ธ ๋ ๊ฐ์ ์ ์ ๊ตฌํ๊ณ ๊ทธ ๊ฑฐ๋ฆฌ๋ฅผ ์๊ณ ์ถ๋ค. ์ ๋ ฅ ์ ๋ ฅ์ ์ฒซ ๋ฒ์งธ ์ค์ ์ ์๋ก ๋ ์ ์ ๊ฐ์ n์ด ์ฃผ์ด์ง๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ n+1๋ฒ์งธ ์ค๊น์ง 2๊ฐ์ ์ ์ x,y๊ฐ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. i+1๋ฒ์งธ ์ค์ Pi ์ x,y ์ขํ๋ฅผ ์๋ฏธํ๊ณ n๊ฐ์ ์ ์ ๋ํด์ ์ฃผ์ด์ง๊ฒ ๋๋ค. ์ ์ ๊ฐ์๋ 2 โฆ n โฆ 500000 , ์ขํ์ ๋ฒ์๋ -10000 โฆ x,y โฆ10000๋ก ์ฃผ์ด์ง๋ค. ๋ํ, ๋ชจ๋ ์ ์ ์ขํ๋ ๊ฐ์ ๊ฒ์ด ์์ด ๋ค๋ฅธ ๊ฒ์ผ๋ก ..
https://www.acmicpc.net/problem/1992 ์๊ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ ์ถ ์ ๋ต ๋ง์ ์ฌ๋ ์ ๋ต ๋น์จ 2 ์ด 128 MB 10660 6114 4794 57.420% ๋ฌธ์ ํ๋ฐฑ ์์์ ์์ถํ์ฌ ํํํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ์ฟผ๋ ํธ๋ฆฌ(Quad Tree)๋ผ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ํฐ ์ ์ ๋ํ๋ด๋ 0๊ณผ ๊ฒ์ ์ ์ ๋ํ๋ด๋ 1๋ก๋ง ์ด๋ฃจ์ด์ง ์์(2์ฐจ์ ๋ฐฐ์ด)์์ ๊ฐ์ ์ซ์์ ์ ๋ค์ด ํ ๊ณณ์ ๋ง์ด ๋ชฐ๋ ค์์ผ๋ฉด, ์ฟผ๋ ํธ๋ฆฌ์์๋ ์ด๋ฅผ ์์ถํ์ฌ ๊ฐ๋จํ ํํํ ์ ์๋ค. ์ฃผ์ด์ง ์์์ด ๋ชจ๋ 0์ผ๋ก๋ง ๋์ด ์์ผ๋ฉด ์์ถ ๊ฒฐ๊ณผ๋ "0"์ด ๋๊ณ , ๋ชจ๋ 1๋ก๋ง ๋์ด ์์ผ๋ฉด ์์ถ ๊ฒฐ๊ณผ๋ "1"์ด ๋๋ค. ๋ง์ฝ 0๊ณผ 1์ด ์์ฌ ์์ผ๋ฉด ์ ์ฒด๋ฅผ ํ ๋ฒ์ ๋ํ๋ด์ง๋ฅผ ๋ชปํ๊ณ , ์ผ์ชฝ ์, ์ค๋ฅธ์ชฝ ์, ์ผ์ชฝ ์๋, ์ค๋ฅธ์ชฝ ์๋, ์ด๋ ๊ฒ ..
Comment