, пожалуйста, помогите мне найти, почему я получаю неправильный ответ для этого вопроса Bytelandian gold coins
. здесь мое решение COINS
Bytelandian gold coins неправильный ответ каждый раз
#include <iostream>
#include <cstdio>
#include <map>
#define max2(a, b) ((a) > (b) ? (a) : (b))
using namespace std;
map <long long , long long > C;
long long f(long long n)
{
if (n == 0) return 0;
long long r = C[n];
if (r == 0)
{
r = max2(n , f(n/2)+f(n/3)+f(n/4));
C[n] = r;
}
return r;
}
int main()
{
int t;
long long n;
scanf("%d",&t);
while(t--){
scanf("%lld",&n);
printf("%lld\n",f(n));
}
return 0;
}
Я новичок динамического программирования, так что я Google на этот вопрос, и я пытаюсь реализовать
от SPOJ_Coins,
, но все еще получаю неправильный ответ на обоих codechef.com и SPOJ.
Просьба представить полный вопрос в теле самого вопроса (не ссылка), и соответствующая часть вашего кода. Вы также должны предоставить тестовый пример того, где ваш код не выполняет то, что он должен. – amit
@amit: он дает правильный ответ для данного тестового примера в вопросе, я думал, что вопрос немного большой, чтобы публиковать здесь. – singhiskng
@amit: я добавил свой код – singhiskng