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

Найти число различных членов последовательности - C++

Восстановить пароль Регистрация
 
fits
3 / 3 / 1
Регистрация: 08.12.2012
Сообщений: 47
08.05.2013, 15:22     Найти число различных членов последовательности #1
Даны целые числа A1,…,An (в этой последовательности могут быть повторяющиеся члены). Найти число различных членов последовательности.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2013, 15:22     Найти число различных членов последовательности
Посмотрите здесь:

C++ C++ Вычислить число различных элементов последовательности( предположить, что последовательность неубывающая)
C++ Даны целые числа a[1],.,a[n]. Найти число различных членов последовательности
C++ 4. Найти сумму К членов последовательности: 3, 7, 11, 15,… Вычислить сумму членов последовательности 1, 4, 7, 10, …, не превосходящих числа К
C++ Получить число отрицательных членов последовательности и сумму нулевых членов последовательности
Массив. Найти, сколько членов первой последовательности совпадает с членами второй последовательности C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 438
08.05.2013, 20:37     Найти число различных членов последовательности #2
Какие ограничения по n и величине чисел?
fits
3 / 3 / 1
Регистрация: 08.12.2012
Сообщений: 47
08.05.2013, 20:42  [ТС]     Найти число различных членов последовательности #3
вроде как сам ставишь ограничения.cout<<n; cin >>n; предположим n=5
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
08.05.2013, 22:26     Найти число различных членов последовательности #4
fits,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <set>
 
int main(){
    set <int> st;
    int n, t;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &t);
        st.insert(t);
    }
    std::cout << st.size();
    return 0;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
08.05.2013, 22:48     Найти число различных членов последовательности #5
Ternsip, что за гибрид со scanf()? Есть же cin >>.
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
08.05.2013, 23:58     Найти число различных членов последовательности #6
Tulosba, если использовать cin и в задаче n ~ 10^6 тогда за пол секунды решение не пройдёт, а если scanf-ать, тогда походит и за приличное время. scanf работает быстрее чем cin. На счёт гибрида, ну, можете убрать cout и сделать printf
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
09.05.2013, 00:01     Найти число различных членов последовательности #7
Ternsip, что Вы так циклитесь на этом? Для начала надо написать красиво, а потом уже оптимизировать, если действительно это понадобится на конкретной задаче.
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
09.05.2013, 00:06     Найти число различных членов последовательности #8
Tulosba,
Цитата Сообщение от Tulosba Посмотреть сообщение
что Вы так циклитесь на этом?
я сделал акцент, потому как очень много людей не может запихать задачи на соревнованиях из-за медленного cin/cout (они не знают что scanf и printf быстро работают). Аналог scanner в Java и буфер ридер.

Добавлено через 1 минуту
Цитата Сообщение от Tulosba Посмотреть сообщение
Для начала надо написать красиво
Если вам этот код кажется не красивым, то вы ещё не погружались реальные недры
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2013, 00:22     Найти число различных членов последовательности
Еще ссылки по теме:

C++ Определить сумму положительных и число отрицательных членов данной последовательности
C++ Найти количество различных чисел в последовательности. Число действий должно быть порядка n*log(n)
Количество различных членов последовательности C++

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
09.05.2013, 00:22     Найти число различных членов последовательности #9
Цитата Сообщение от Ternsip Посмотреть сообщение
потому как очень много людей не может запихать задачи на соревнованиях из-за медленного cin/cout
Может сразу на асме тогда код писать? Не каждый код пишется для соревнований/олимпиад и прочих "быстрее/выше/сильнее". Я не проводил специальных тестов по scanf/cin, но насколько знаю, основная тормознутость там кроется в std::endl, который сбрасывает буфер. Однако, для задачи ТС это в любом случае не сыграет никакой весомой роли (n=5). Поэтому правильнее написать код в едином стиле (с потоками) cin/cout.
Цитата Сообщение от Ternsip Посмотреть сообщение
Если вам этот код кажется не красивым, то вы ещё не погружались реальные недры
Недры бывают разные. Да и оптимизация тоже. А в большинстве случаев она не нужна вовсе.
Yandex
Объявления
09.05.2013, 00:22     Найти число различных членов последовательности
Ответ Создать тему
Опции темы

Текущее время: 11:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru