Найдите n-элемент в последовательности. Как ускорить работу программы (время) для n > 10^6?C++

Программы на C++. Форум разработчиков
Anonymous
 Найдите n-элемент в последовательности. Как ускорить работу программы (время) для n > 10^6?

Сообщение Anonymous »

Я думаю, что у меня правильный алгоритм, но когда значения увеличиваются до 106 и более, я превышаю разрешенный MEMORY или TIMELIMIT. Сначала я попытался поместить элементы в вектор, затем изменил метод для повторного использования переменных и прошёл больше тестов.
формула: Ai = (A i-1 + 2 * Ai-2 + 3 * Ai-3) mod M, где M = 109 + 7.

1 > x;
cout 10^6)
Тест 1
Вход: 6

Выход: 34
Тест 2
Вход: 10
Выход: 1096
Тест 3
Вход: 500
Вывод: 340736120
Нужно ли менять алгоритм или ускорять какими-либо способами?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -for-n-106

Вернуться в «C++»