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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2011, 00:07   #11
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Для Вашей задачи, дерево точно не подойдёт. Для хранения элементов дерева требуется место под хранение ссылок на последующие два элемента (как минимум) т.е. на один бит информации Вы будете затрачивать 32+32+1 бит, для 32-х разрядных машин и 64+64+1 для 64-х разрядных. Булев массив будет затрачивать 8 бит памяти для хранения значения true/false, битовая структура - 32+8 бит памяти или 64+8 для 64-х разрядных машин.
Если память ограничена, я бы поступил так. Создал массив char и при помощи операторов << или >> производил доступ к отдельному биту какждого байта массива. В этом случае массив будет хранить n*8 булевых переменных. Правда за это пидётся "заплатить" скоростью обработки.
Цитата:
очень быстро и много раз изменять значение элемента на различных отрезках [L..R]
Если отрезки постоянные (или редко меняются) их можно хранить на диске, а в памяти хранить только те, с которыми программа работает в данный момент. Если использовать виртуальную память, всё равно часть данных будет записываться на диск в виде кеша.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 23.10.2011 в 00:16.
Smitt&Wesson вне форума Ответить с цитированием
Старый 23.10.2011, 09:02   #12
Gapro
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 256
По умолчанию

Цитата:
Сообщение от Syuf Посмотреть сообщение
В дереве Фенвика, если мне не изменяет память, требуется 2n памяти. Я имел ввиду массив префиксных сумм, когда говорил, что это деревом не является.
Дерево Фенвика требует столько же памяти, сколько массив из n элементов, т.е. O(n) А сама задача вот http://acm.timus.ru/problem.aspx?space=1&num=1019
Gapro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры данных Shadow94 Общие вопросы C/C++ 8 22.04.2011 11:50
Структуры данных SlayerLiving C++ Builder 2 07.03.2011 20:26
Структуры данных LeNus'Ka Помощь студентам 4 23.11.2010 17:43
С++ Структуры данных DarkSwan Помощь студентам 0 27.10.2010 12:21
Структуры данных в С++ ArniLand Общие вопросы C/C++ 2 14.07.2010 18:34