Я решал эту проблему -> http://www.spoj.com/problems/SAMER08F/ (Очень простая проблема) … Получил AC с первого раза … Мое решение было таким (довольно простым):
#include<iostream>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
while(n!=0)
{
printf("%d",((n)*(n+1)*((2*n)+1))/6);
printf("\n");
scanf("%d",&n);
}
return 0;
}
Я просматривал этот список http://ahmed-aly.com/Category.jsp?ID=33 и я обнаружил, что Фейнман указан как проблема DP … Я новичок в DP и не могу понять, как эта проблема состоит из подзадач. Любая помощь или подсказка в поиске повторяющихся отношений будет очень полезна.
Это просто глупый DP.
Что вы делаете здесь право?
Вместо этого вы можете создать массив для хранения суммы квадратов (назовем это sumSquares). Теперь, вот как бы вы заполнили массив:
sumSquares [0] = 0; (Базовый случай, сумма квадратов первого
ноль элементов это ноль).
sumSquares [i] = sumSquares [i — 1] + (Сумма квадратов
из я элементы это сумма квадратов (я — 1) элементы + квадрат Ith
элемент)
И это все! Вы повторяете до n, и ваш ответ хранится в sumSquares [n]!
Других решений пока нет …