Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2019, 11:55   #1
Константин01
Пользователь
 
Регистрация: 11.05.2019
Сообщений: 21
По умолчанию [РЕШЕНО][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, 12:04   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация алгоритма масштабирования 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 06:42