Форум программистов, компьютерный форум CyberForum.ru

Как задать правильно условие??? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Графика в Turbo C)) http://www.cyberforum.ru/cpp-beginners/thread264419.html
1. Составить программу построения графического изображения. Нарисовать "Молоток ". 2. Построить график функции. f (x) = cos (x ^ 2 + x) / x. 3. Составить программу изображения движущегося объекта. Дом, из трубы которого идет дым. Помогите.Хотя бы одну задачку.)
C++ Обработка динамических массивов В матрице удалить строку с минимальным произведением элементов, а затем в качестве третьей добавить строку элементы которой равны разностям элементов последней и первой строк. Подскажите, пожалуйста, я в правильном направлении двигаюсь? #include<iostream.h> #include<iomanip.h> #include<conio.h> #include<stdlib.h> void inmatr(int,int&,int&); void outmatr(int,int,int); http://www.cyberforum.ru/cpp-beginners/thread264416.html
Задано натуральное число. Создать стек с его цифр. C++
У меня такое задание: Задано натуральное число. Создать стек с его цифр. Я не понимаю что вообще нужно делать. Помогите пожалуйста.
Использование операторов цикла C++
Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд в двух случаях: а) для заданного n; б) для заданной точности е (е=0.0001). Для сравнения найти точное значение функции. Функция *** Условие *** Исход. данные *** Диапазон и шаг изменения аргумента {a/x+bx2+c ...
C++ Записать студента в ведомость и вывести ее в порядке, обратном алфавитному http://www.cyberforum.ru/cpp-beginners/thread264384.html
Само задание: Один метод должен в новой ведомости размещать студентов в порядке, противоположном алфавитному. Другой – записать нового студента в заданную ведомость (по алфавиту). Разработать и протестировать класс, производный от заданного базового класса (po- tok). Производный класс должен содержать методы для создания новых ведомостей успе- ваемости по заданным правилам. Новые...
C++ Вывод в форму Подскажите, пожалуйста, каким образом можно вывести графику в форму, а не в консоль? Надо ли указывать дескриптор формы? Если да, подскажите, где его можно посмотреть. подробнее

Показать сообщение отдельно
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
26.03.2011, 16:25     Как задать правильно условие???
Если правильно понял задание, то это задача на динамическое программирование.
Нужно создать доп.массив на такое же количество элементов, как и наш основной массив, где каждая ячейка будет содержать самую длинную последовательность (т.е. её длину) для этого числа (из основного массива).
Потом в цикле от номера элемента, для которого ищется длина самое длинной последовательности до начала массива проверяем, является ли наш элемент больше того, который проверяется, если да, то находим максимум между длинами проверяемого значения и значения, длина которого сейчас считается максимальным.
Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <cmath>
 
#define MAX(x,y) ( ( x > y ) ? ( x ) : ( y ) )
 
using namespace std;
 
 
int main()
{    
    int i, j, N, max, M = 1;
    cin >> N;
    int *A = new int[N];
    int *T = new int[N];
    cin >> A[0];
    T[0] = 1;
    max = 0;
    for (i = 1; i < N; ++i)
    {
        cin >> A[i];
        for (j = i-1; j >= 0; --j)
        {
            if (A[i] > A[j])
               max = MAX(max, T[j]);
        };
        T[i] = max + 1;
        M = MAX(T[i], M);
        max = 0;        
    };
    cout << M;
  
    return 0;
}
Код
Test
Input:
5
3 8 4 6 9
Output:
4 (патаму ша 3 4 6 9)
 
Текущее время: 12:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru