|
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 63
|
|
Динамический массив с большим количеством элементов13.03.2013, 00:15. Показов 12659. Ответов 61
Метки нет (Все метки)
Нужно создать динамический массив (каждый элемент целое положительное число до 10^9), который по введенным данным создавал N элементов массива, где N может быть до 10^5.
unsigned long int *arr = new unsigned long int[num]; Я сделал так, но если количество элементов больше 45920, то выводит ошибку "terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc This application has requested the Runtime to terminate it in unuasual way. Please contact the application's support team for more information." IDE Qt Creator. Статические массивы типа int array[1000000]; сразу выводят ошибку, причем в обоих случая изменение типа элементов массива ничего не меняет.
0
|
|
| 13.03.2013, 00:15 | |
|
Ответы с готовыми решениями:
61
Применение массивов случайных чисел с большим количеством элементов Сформировать новый массив С, переписав в него массив с большим количеством положительных элементов. |
|
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 63
|
|
| 13.03.2013, 04:35 [ТС] | |
|
кажется этот - http://rutracker.org/forum/viewtopic.php?t=4038622
Добавлено через 4 минуты Без булевого массива все работает (но я не уверен, как себя поведет прога на моем компе при большом количестве элементов - по понятным причинам 60к значений с клавиатуры забить сложно). Но на тестах выходит перебор по времени выполнения на этом же самом тесте из-за вдвое большего количества итераций цикла =\
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
||||
| 13.03.2013, 04:57 | ||||
правда дальше читаем
0
|
||||
|
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 63
|
||
| 13.03.2013, 05:01 [ТС] | ||
|
Встретится комбинация [j][i]. Это была попытка уменьшить количества вхождений во внутренности if-a из-за двойного прохождения. Допустим есть удачная комбинация i=2;j=4. Без булева массива цикл войдет в if ещё и при i=4;j=2.
Вообщем вопрос можно оставить для теоретических исследований - алгоритм действительно
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
|||||||
| 13.03.2013, 05:06 | |||||||
|
не проще написать так
1
|
|||||||
|
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 63
|
|
| 13.03.2013, 05:10 [ТС] | |
|
Действительно, так намного лучше, странно, что я не додумался.
Но все равно по времени не прошло, там все намного проще оказалось. Нужно переформулировать рекурсивное соотношение, оно сводится всего лишь к определнию четности-нечетности, так что подпрограмма не нужна. Но если бы рекурсивная формула была сложнее, то пришлось бы оставить как есть.
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
|
| 13.03.2013, 05:12 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 63
|
|
| 13.03.2013, 05:21 [ТС] | |
|
Нет. Вот что я пытаюсь решить.
http://codeforces.ru/problemset/problem/272/B Добавлено через 4 минуты Кажись я поспешил, не уверен, что эту рекурсию можно так быстро на условия if-a вместо подпрограммы разбить.
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
|||||||
| 13.03.2013, 05:28 | |||||||
![]() вот так
0
|
|||||||
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 13.03.2013, 05:31 | |
|
Куча глобальна в любом случае, а указатель может валяться и в стеке.
0
|
|
|
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 63
|
||||||
| 13.03.2013, 05:45 [ТС] | ||||||
|
Вообщем не представляю что ещё можно придумать.
0
|
||||||
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 13.03.2013, 05:50 | ||
|
Добавлено через 54 секунды 1 771 561 элементов по 10 байт штука.
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
|||||||
| 13.03.2013, 06:03 | |||||||
|
можно еще убыстрить выбрасываем ветвление
0
|
|||||||
|
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 63
|
|
| 13.03.2013, 06:12 [ТС] | |
|
Вроде работает (сайт codeforces упал, на тестах прогнать не могу).
k+=%2; // тут компилятор вывел ошибку, заменил на k+=k%2; А можно подробней, что означает n/=2 и почему это тот же алгоритм =\
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
||||||||||||||
| 13.03.2013, 06:24 | ||||||||||||||
|
если я изменю немного вторую формулу f(0)=0; f(2x)=f(x)+0; f(2x+1)=f(x)+1; то видно что это алгоритм перевода десятичного числа в двоичное путем деления на двойку ![]() правильно писать
0
|
||||||||||||||
|
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 63
|
|
| 13.03.2013, 06:30 [ТС] | |
|
В любом случае, опять 25 - 11 тест завален по времени выполнения
![]() Я правда не понял - а зачем в условии while писать выражение? В каком случае будет выход? Когда целочисленное деление n/2 приведет к 0? (то есть при n=1)
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
||
| 13.03.2013, 06:35 | ||
|
вообще то там написано
![]() данные то как вводятся??? файл али что?
0
|
||
|
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 63
|
|
| 13.03.2013, 06:39 [ТС] | |
|
Почему не проходит? массив занимает 4 мб, остальное мелочи, по сравнению с ним.
Данные вводятся с клавиатуры (в теории), но у них там какая то система автоматического тестирования, имитирует ввод с клавы.
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
|||||||
| 13.03.2013, 08:34 | |||||||
|
здесь есть другой путь массив на 32 инта сейчас обдумаю напишу Добавлено через 1 час 41 минуту короче задача решается вообще без выделения памяти достаточно вспомнить комбинаторику(я целый час вспоминал )количество комбинаций n*(n-1); а количество пар n*(n-1)/2; выделяем массив на 32 элемента в него будем заносить количество чисел сумма единиц которых равна номеру элемента массива потом подсчитаем сумму количество пар в каждом элементе массива в общем вот код
убыстрение нет выделения памяти функция вызывается 100000 раз а не 100000*99000 нет ветвлений Добавлено через 5 минут проверить не смог, лень регистрироваться
1
|
|||||||
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 13.03.2013, 09:38 | |
|
А чаще всего мне было нужно более 2-х гигбибай (289 000 000 элементов по 10 байт штука). Вот это уже должно быть разреженным. Малышь же в 1 771 561 элементов по 10 байт был статическим.
0
|
|
| 13.03.2013, 09:38 | |
|
Как преобразовать массив с большим количеством элементов в строку?
Организовать динамический массив с заранее неизвестным количеством элементов
Оперирование большим количеством элементов CheckBox Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|