2015-01-24 3 views
-2

우리는 숫자 N과 비용 C를 가지고 있습니다 (범위 N < 10^18, C < 100) 이제 숫자를 다른 숫자로 변환하기 위해 최대 C 루피를 소비해야합니다.숫자의 배수, 3의 배수

1) 수치는 동일한 숫자 번호 앞에 0이없는 다른 번호로 변환 될 수있다 : 다음과 같이 다른 다수의 변환

규칙이다. 2) 숫자를 다른 숫자로 변환하는 비용은 해당 숫자의 절대 차이의 합입니다. 예를 들어, 235에서 331로 변환하는 비용은 5입니다 (해당 자릿수의 절대 차이는 | 3 || + | 3-3 | + | 1-5 |이므로 | 1 | + 0+ | -4 | . = 5 이제 우리는 최대 예산 (C 루피)에서 할 수있다 (3) 여러 얼마나 많은 번호를 찾을 필요가

내 접근 방식을 :. 내가 3의 가분성 규칙을 사용하여 찾을 먼저 시도 N 개의 숫자의 합 N 이제 비용이 단순히 숫자의 차이의 합계라면 합계를 3의 배수로 만드는 것입니다. 2 + 3 + 5 = 10 비용은 2 입니다. 어떤 숫자 2, 3 또는 5 2에 의해 증가에 의해 달성 435,255, 237이 올바른지? 또한이 경우 해결하는 방법에 대해 c는 ab입니다

+0

이것은 숙제와 같습니다. StackOverflow 도움말 센터에서 발췌 : '3. 숙제 도움을 요청하는 질문에는 문제를 해결하기 위해 지금까지해온 작업의 요약과 문제 해결에 대한 설명이 포함되어야합니다. ' – akrasuski1

+0

하지만 그렇지 않습니다. 나는 웹상에서이 문제를 발견했고 그것을 해결하기 위해 괭이를 알고 싶어했다. –

+0

아직도. 문제를 공격하려고 시도한 흔적을 보이지 않았습니다. – akrasuski1

답변

0

비용 (a, b)B 변환 비용을 나타내며 정의 할 용질 합

N(a,c) = # { b | cost(a,b) = c } 

즉, N의 (A, C)는의 개수 에서까지의 비용은 정확히 c입니다.

하자 (3)로 나누어 _a_is 가정 학습과 그 다음 우리가 관심있는 번호는 :

answer = N(a,0) + N(a,3) + N(a,6) + N(a,9) + ... + N(a,99) 

만약이었다 우리가 합 N (A, 2) + N을 원하는 것 1 개 모드 3 (a, 5) + ... + N (a, 98)이다.

은 (d) 다항식 P를 구성하는각 디지트 D 들어 N (a, c) 계산법 가 의 계수 X^K가 자릿수이다 [0..9]에서 정확히 k d에서 떨어져 있습니다.

d 1 x x^2 x^3 x^4 x^5 x^6 x^7 x^8 x^9 
-- --- --- --- --- --- --- --- --- --- --- 
    3 1 2 2 1 1 1 1 0 0 0 
    4 1 2 2 2 2 1 0 0 0 0 
    9 1 1 1 1 1 1 1 1 1 1 
    6 1 2 2 2 1 1 1 0 0 0 

NB : 이들 계수는 항상 = 3496 다항식은 0, 1 또는 예 2

될 것이다 X^3 계수 디지트 3 위한 선행 0은 허용되지 않으므로 1이 아니라 2입니다.

지금 함께 다항식 곱 N은 (a, c)은 결과물의 X^C 의 계수이다.

+0

감사합니다 :) 나는 이것으로 해결하려고합니다. –

+0

안녕하세요 - 무슨 일 이니? – ErikR