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

Алгоритм с константной асимптотикой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скины http://www.cyberforum.ru/cpp/thread83690.html
Как можно создавать скини на свои проги в Borland C++ Builder 6, как на Скриншоти Скриншот
C++ Квадратная страна http://acm.timus.ru/problem.aspx?space=1&num=1073&locale=ru В одном квадратном государстве жили квадратные люди. И всё остальное в этом государстве было тоже квадратное. Так, Квадратная Дума приняла Квадратный Закон о земле. Согласно этому закону, любой житель государства имел право приобрести землю. Земля продавалась, естественно, квадратными участками. Длина стороны каждого участка... http://www.cyberforum.ru/cpp/thread83668.html
Препроцессорные директивы в C/C++ (#include, #define и прочее) C++
Статья переехала сюда
C++ Игра Пуговицы.
http://acm.timus.ru/problem.aspx?space=1&num=1023&locale=ru Правила игры очень просты. Перед двумя играющими находится кучка из K пуговиц. Играющие по очереди берут пуговицы из кучки, причем за один ход каждый из них может взять от 1 до L пуговиц. Выигрывает тот из спортсменов, которому удастся взять последнюю пуговицу. Правила олимпийских соревнований будут лишь немного сложнее обычных. Тот...
C++ Ассемблерная вставка http://www.cyberforum.ru/cpp/thread83608.html
Товарищи!! кто знает, подскажите как сделать ассемблерную вставку в cи-проекте в среде Turbo C?? я пытался скормить ему asm...,но никак..ошибка( может быть надо тот кусок проги на асм отдельным файлом сделать и прикрепить..не знаю подскажите плз!!
C++ Step 1: Specify the working directory from which doxygen will run У меня есть файлы написанные на С++ (cpp и h). Все эти файлы я разместила на диске D в одной папке. Нужно получить документацию по каждому файлу. А у меня в результате получается пустой документ. Step 1: Specify the working directory from which doxygen will run Я пишу там так: D:/ Учеба/ ВПИ/Registration( в папке Registration у меня cpp и h файлы. Scan recursively - галочка стоит. Source... подробнее

Показать сообщение отдельно
outoftime
║XLR8║
507 / 429 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
09.01.2010, 01:31  [ТС]     Алгоритм с константной асимптотикой
http://acm.timus.ru/problem.aspx?space=1&num=1439

Добавлено через 2 минуты
Несмотря на свои неординарные способности, волшебники любят использовать высшую математику. А именно, они любят находить нужную комнату по ее номеру! Но, конечно же, и тут не обошлось без магии.
В Министерстве Магии на двери комнат наложены чары, которые автоматически нумеруют комнаты: стоит ввести в эксплуатацию новую комнату, как на её двери тут же появляется табличка с номером. Новый номер вычисляется как число, на единицу большее максимального существующего на данный момент номера комнаты. Естественно, ранее существовавшие номера при этом не меняются. Первая созданная комната, разумеется, получила номер 1. Если же комната больше не нужна, то её дематериализуют, и все номера комнат, большие номера уничтожаемой комнаты, уменьшаются на единицу. Благодаря этому нумерация комнат всегда остается сплошной.
Гарри Поттеру удалось узнать номера комнат в министерстве, где могут находиться артефакты, обеспечивающие Сами-Знаете-Кому бессмертие. Казалось бы, теперь найти их и уничтожить не составит труда. Но не тут-то было. Благодаря своей связи с Гарри, Волан-де-Морт сразу же узнал про открытие Гарри. Поэтому он перенесся в министерство и стал уничтожать комнату за комнатой. Теперь Гарри, видя номер на двери, не знает, какой у этой комнаты был номер раньше. Но зато он знает, какие номера были на дверях комнат, которые уничтожал и уничтожает его враг (ведь Гарри тоже чувствует все, к чему причастен Волан-де-Морт). Вы должны помочь Гарри! Конечно, никто не просит вас сражаться с Вы-Догадываетесь-Кем, но ведь вы можете помочь Гарри быстрее определить настоящий номер комнаты, около которой он находится.
Исходные данные
В первой строке входа указаны число N - количество комнат в министерстве N (1 ≤ N ≤ 109) и число M (1 ≤ M ≤ 105). Каждая из последующих M строк имеет следующий формат:
<letter> <number>
где <letter> - одна из букв 'D' (Destroy) или 'L' (Look at), а <number> - номер на двери комнаты, которая оказывается уничтоженной в данный момент, или на которую в данный момент смотрит Гарри. Известно, что в процессе битвы будет уничтожено не более 104 комнат.
Результат
Выход должен содержать для каждой строки
L <number>
входных данных настоящий номер (который был до начала всего этого безобразия) комнаты, на которую смотрит Гарри. Числа должны располагаться по одному в строке.
Пример
исходные данные результат
20 7
L 5
D 5
L 4
L 5
D 5
L 4
L 5
результат
5
4
6
4
7

Добавлено через 49 минут
я думаю что можно использовать сет, елементы в нем упорядочены, добавление происходит за logN, что для даной задачи = 16 - максимум, т.е., примерно, 10.

что-бы узнать номер комнаты достаточно знать сколько комнат было удалено до нее, причем здесь сет? если узнать указатель на первый елемент, значение которого больше номера нашей текущей комнаты и отнять указатель на начало сета получим количество елементов, которые были удалены, т.к. мы имеем сет и умеем кодить бинарный поиск, можно реализовать, но бинарный поиск нужно вести по сету, как это реализовать?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru