알고리즘문제풀이

백준 20500 Ezreal 여눈부터 가네 ㅈㅈ

배우겠습니다 2024. 4. 3. 21:57

문제

https://www.acmicpc.net/problem/20500

풀이

  • 나머지 연산은 곱과 합이 성립한다.
  • N자리 모든 수들의 나머지는 0~14이다.
  • number(n)을 어떤 1과 5로만 이루어진 n자리 자릿수 중 하나라고 하자.
  • 숫자가 1과 5만 올 수 있다는 것은
    • 10^(n) + number(n) (1을 맨 앞에 붙힘)
    • 5*10^(n) + number(n) (5을 맨 앞에 붙힘)
      • n + 1 자릿수는 이 두개의 수가 올 수 있다는 것이다.
      • 나머지 연산은 곱과 합이 성립한다. 따라서 두 수의 나머지는
        • 10^(n) % 15 + number(n) % 15
        • 5*10^(n) % 15 + number(n) % 15
  • 해당 성질에 의해 dp로 문제를 풀 수 있다.
    • dp(i,j) = dp(i,j) + dp(i-1,15 + j-10^n%15) + dp(i-1,15 + j-5*10^n%15)
    • i: 자릿수,j: 15로 나눈 나머지

'알고리즘문제풀이' 카테고리의 다른 글

백준 11834 홀짝  (0) 2024.05.14
백준 31741 구간 덮기  (0) 2024.04.24
2381 최대거리  (1) 2024.03.24
31478 포니 양은 놀고 싶어  (2) 2024.03.22
백준 1419 등차수열의 합  (0) 2024.03.06