Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
#1

Наибольшая возрастающая подпоследовательность за O(NlogN) - C++

30.05.2014, 10:52. Просмотров 1289. Ответов 4
Метки нет (Все метки)

Здравствуйте! Вот тут написал код НВП за О(NlogN).Но на тестирующей системе он выдает на тесты некоторые неправильные ответы.Тестов я получить не могу, а все мои тесты он проходит.

http://www.cyberforum.ru/cpp-beginners/thread969685.html
Вот код:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <utility>
#include <stack>
 
using namespace std;
typedef long long ll;
 
const ll maxn = 10009;
vector<ll> a(maxn, 0), t(maxn, maxn), p(maxn, 0), pr(maxn, 0);
ll n;
stack<ll> q;
 
 
void test()
{
    cin >> n;
    for (ll i = 1; i <= n; ++i)
        cin >> a[i];
    t[0] = -maxn;
    for (ll i = 1; i <= n; ++i)
    {
        ll j = upper_bound(t.begin(), t.begin() + n + 1, a[i]) - t.begin();
        if (a[i]<t[j] && a[i] > t[j - 1])
        {
            t[j] = a[i];
            p[j] = i;
            pr[i] = p[j - 1];
        }
    }
    ll ind = lower_bound(t.begin(), t.begin() + n + 1, maxn) - t.begin()-1;
    cout<<ind<<endl;
    ind = p[ind];
    while (ind)
    {
        q.push(ind);
        ind = pr[ind];
    }
    while (!q.empty())
    {
        cout << a[q.top()] << ' '; q.pop();
    }
}
 
int main()
{
    //ios_base::sync_with_stdio(0);
    test();
    return 0;
}
В чём ошибка тут быть может?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2014, 10:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Наибольшая возрастающая подпоследовательность за O(NlogN) (C++):

Максимальная возрастающая подпоследовательность алгоритмами STL
Доброго времени суток, уважаемые форумчане. Есть задача, реализовать...

Динамическое программирование: самая длинная строго возрастающая подпоследовательность
Здравствуйте!!! У меня есть такое задание: дана последовательность целых чисел....

Наибольшая общая подпоследовательность с восстановлением ответа
Даны две последовательности, требуется найти и вывести их наибольшую общую...

возрастающая последовательность
необходимо удалить из заданного массива 4 элемента так, чтобы оставшиеся...

Возрастающая последовательность
Народ помогите написать прогу на Си. Даны вещественные числа. определить...

4
grikukan
62 / 62 / 54
Регистрация: 23.09.2012
Сообщений: 212
30.05.2014, 11:05 #2
А где можно сдать для проверки?
0
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
30.05.2014, 11:10  [ТС] #3
grikukan, informatics.mccme.ru
0
grikukan
62 / 62 / 54
Регистрация: 23.09.2012
Сообщений: 212
30.05.2014, 11:14 #4
Там в условии ошибка.
Поставьте maxn=100007 и будет Вам счастье
1
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
30.05.2014, 14:38  [ТС] #5
grikukan, не заходит.Пишет - неправильный формат вывода

Добавлено через 19 минут
Всё, проблема решена
0
30.05.2014, 14:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2014, 14:38
Привет! Вот еще темы с решениями:

Возрастающая последовательность
Задание: Написать программу, которая проверяет, представляют ли элементы...

Возрастающая последовательность
Помогите написать программму,которая проверит,представляют ли элементы...

Возрастающая последовательность массива
Задание: Написать программу, которая проверяет, представляют ли элементы...

массив и возрастающая последовательность
#include &lt;iostream&gt; using namespace std; void main() { int t; int n;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru