10986๋ฒ: ๋๋จธ์ง ํฉ (acmicpc.net)
โปํ๋ฆฐ ๋ต: ์๊ฐ์ด๊ณผ (N^2)
์ ํ๋ ธ๋์ง.. ๊ทธ๋ผ ์ด๋ป๊ฒ ํ์ด์ผํ๋์ง.. ์ง๋ฌธ๊ฒ์์ ๋ค์ ธ๋ณด๋ ์ค์..
๋ฌด์จ ๋ง์ด์ง??? ..
๊ทธ๋์ ์์ ๋ฅผ ์ด์ฉํด์ ์ฒ์ฒํ ์ ๋ฆฌํด๋ณด์๋ค.
1. ๋ถ๋ถํฉ์ M์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ ๊ฐ์ ๊ฒ๋ผ๋ฆฌ ๊ทธ๋ฃน์ ์ง๋๋ค๊ณ ์๊ฐํด๋ด ์๋ค.
SumArr[i] = (Arr[i] + SumArr[i-1]) % M;
๋ฒ์ | (1,1) | (1,2) | (1,3) | (1,4) | (1,5) |
Sum | 1 | 3 | 6 | 7 | 9 |
Sum Arr |
1 | 0 | 0 | 1 | 0 |
2. ๋ ๋ถ๋ถํฉ์ ์ฐจ์ด๋ ๊ณง ํน์ ๊ตฌ๊ฐ์ ํฉ์ด ๋๋ฏ๋ก,
Arr[i] ~ Arr[j] == SumArr[j] - SumArr[i-1]
3. ๋ถ๋ถํฉ์ M์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ ๊ฐ์ ๊ทธ๋ฃน์์
๋๋จธ์ง ๊ทธ๋ฃน | 0 | (1,2), (1,3), (1,5) |
1 | (1,1), (1,4) |
4. ๋ ๋ถ๋ถํฉ A, B๋ฅผ ๋ฝ์ผ๋ฉด, ๊ทธ ๋ ๋ถ๋ถํฉ์ด ๋ํ๋ด๋ ์ฐ์๋ ๊ตฌ๊ฐํฉ (B-A)๋ฅผ M์ผ๋ก ๋๋ ๋๋จธ์ง๋ 0์ด ๋ฉ๋๋ค.
๋๋จธ์ง ๊ทธ๋ฃน 0 | [(1,2), (1,3)] = (3) | [(1,2), (1,5)] = (3~5) | [(1,3), (1,5)] = (4~5) |
{๊ตฌ๊ฐ ๊ฐ}, ๊ตฌ๊ฐ ํฉ | {3} , sum = 3 | {3,1,2} , sum = 6 | {1.2} ,sum = 3 |
๋๋จธ์ง ๊ทธ๋ฃน 1 | [(1,1), (1,4)] = (2~4) |
{๊ตฌ๊ฐ ๊ฐ}, ๊ตฌ๊ฐ ํฉ | {2, 3, 1} , sum = 6 |
์ ๋ฆฌํ๋ฉด, ์ฐ๋ฆฌ์ ๋ชฉํ๋ M์ ๋๋ ๊ฐ์ ๋์ ํฉ์ ๊ตฌํ๋ ๊ฒ.
๊ธฐ์กด ๋์ ํฉ(Arr[A] ~ Arr[B])์ ๊ตฌํ๋ ํ๋ ค๋ฉด (Sum[B] ~ Sum[A-1])
์ฆ, (Sum[B] - Sum[A-1]) % M = 0 ์ด ๋๋ ์์ ๊ฐฏ์์ด๋ค.
์ด ๊ณต์์ ๋ถ๋ฐฐ ๋ฒ์น์ ์ ์ฉํ๋ฉด (Sum[B]%M) = (Sum[A-1]%M).
๋ง์ง๋ง์ผ๋ก ์๋ก๋ค๋ฅธ n๊ฐ(๋ถ๋ถํฉ) ์ค์ r๊ฐ(2๊ฐ)๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ์ ์ ์กฐํฉ nCr์ ์ ์ฉํ๋ค.
์ดํดํ๋๋ฐ ์ค~~๋ ๊ฑธ๋ ธ๋ค..
๋ง์ฝ ๋ณด์๋ ๋ถ ์๋ค๋ฉด ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ^^
โป ๋ง์ ๋ต
'๐ coding test > โฝ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(๋ฐฑ์ค/c++) 16139 - ์ธ๊ฐ-์ปดํจํฐ ์ํธ์์ฉ (0) | 2022.06.27 |
---|---|
(๋ฐฑ์ค/c++) 2559 - ์์ด (0) | 2022.06.27 |
(๋ฐฑ์ค/c++) 11660 - ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5 (0) | 2022.06.23 |
(๋ฐฑ์ค/c++) 11659 - ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4 (0) | 2022.06.23 |
(๋ฐฑ์ค/c++) 24444~24445 ๋๋น ์ฐ์ ํ์ 1~2 (0) | 2022.06.05 |
์ ํ๋ ๊ฒ ๋ณด๋ค ๋ซ๊ฒ ์ง
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!