Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 11.05.2019, 12:55   #1
Константин01
Пользователь
 
Регистрация: 11.05.2019
Сообщений: 17
По умолчанию [РЕШЕНО][C++] Реализация алгоритма нахождения НВП

Здравствуйте! Изучаю C++, написал реализацию нахождения алгоритма НВП, не работает - просто возвращает первые числа последовательности.

Несколько раз проходил код с бумагой и карандашом и получалось, что все должно работать. Прошу посмотреть код и указать, в чем ошибка. Спасибо.

Код:
#include <iostream>
#include <algorithm>
#include <vector>


using namespace std; 


void LIS(int A[], int n)
{
	int ans;
	int length;
	int d[n];
	int prev[n]; 
	
	for (int i=0; i<n; i++)
	{
		d[i] = 1;
		prev[i] = -1;
		for (int j=0; j<i; j++)
		{
			if (A[j] < A[i] && d[j] + 1 > d[i])
				d[i] = d[j] + 1;
				prev[i] = j;
		}

	}
	ans = 0;
	length = d[0];
	for (int i=0; i<n; i++)
	{
		if (d[i] > length)
		{
			ans = i;
			length = d[i];
		}

	}

	vector<int> answer;
	while (ans != -1)
	{
		answer.push_back(A[ans]);
		ans = prev[ans];
	}
	reverse(answer.begin(), answer.end());

	for (int i=0; i<length; i++)
	{
		cout << answer[i] << ' ';
	}


} 


int main()
{
	
	int A[10] = { 3, 2, 7 , 4, 5};

	LIS(A, 5);

	return 0;
}
Константин01 вне форума Ответить с цитированием
Старый 11.05.2019, 13:04   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,097
По умолчанию

Код:
				d[i] = d[j] + 1;
				prev[i] = j;
Вы же понимаете, что здесь только один оператор под условием?
Пишу программы на С++. ТЗ, цену и сроки на p51x.fr {@} яндекс.ру
p51x вне форума Ответить с цитированием
Старый 11.05.2019, 18:10   #3
Константин01
Пользователь
 
Регистрация: 11.05.2019
Сообщений: 17
По умолчанию

Понял. Спасибо за ответ. Проблему решил.
Константин01 вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация алгоритма масштабирования DENIS_POLOTSK C# (си шарп) 6 01.06.2012 20:01
Реализация Алгоритма Хаффмана Iren1993 Паскаль, Turbo Pascal, PascalABC.NET 1 22.05.2012 21:26
реализация циклического алгоритма С++ tracer Помощь студентам 5 12.05.2011 20:15
Реализация алгоритма нахождения максимального потока в сети Myasnik Помощь студентам 3 06.01.2008 07:42