Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];

Вниз

Задача с областной олимпиады.   Найти похожие ветки 

 
VAD*Anti Gopn!k ©   (2008-01-30 14:31) [0]

Задача:
"на числовой прямой задано n точек. Необходимо найти среди них две ближайшие. Значения координат x[i] не превосходят 10^9 по абсолютной величине.

Ограничения: время работы 2 с, размер памяти 64 мб.

Задачу решил, но не уложился по времени на некоторых тестах.
Подскажите оптимальный алгоритм. Думал-думал не надумал. Может, есть какие эффективные методы сортировки.


 
oldman ©   (2008-01-30 14:33) [1]


> на числовой прямой задано n точек


1. Вразброс или упорядочено?
2. Чем задано?


 
VAD*Anti Gopn!k ©   (2008-01-30 14:40) [2]

1. разбросано.
2. числами.  Например:
3 5 4 7 0 1 14


 
Jeer ©   (2008-01-30 14:42) [3]

Если уже упорядочены, то:
Задача сводится к дискретному дифференцированию ( по простому - нахождение разностей между соседними двумя) и поиском максимума.
Как понимаю, линейная сложность.


 
Jeer ©   (2008-01-30 14:43) [4]

Если не упорядочены - сортировка, затем, как описано.


 
clickmaker ©   (2008-01-30 14:43) [5]


> Может, есть какие эффективные методы сортировки

а ты какой использовал?


 
VAD*Anti Gopn!k ©   (2008-01-30 14:49) [6]


> Jeer ©   (30.01.08 14:43) [4]

Хе хе. В том то и фишка. Например, если сортировать методом пузырька то будет цикл до 10^9.l Пустой такой цикл работает 2.5 мин. а мне нужно 2 сек.


> clickmaker ©   (30.01.08 14:43) [5]

а я без сортировки обошелся. Тупо перебор. Фактически алгоритм цикла до 10^9, но нормально работает при не таких больших числах.


 
Palladin ©   (2008-01-30 14:54) [7]


> а я без сортировки обошелся. Тупо перебор.

как же"ш ты на олимпиаду то областную попал...


 
VAD*Anti Gopn!k ©   (2008-01-30 14:56) [8]


> Palladin ©   (30.01.08 14:54) [7]

Видать, и вы по другому не сможете решить. Сможете-буду очень благодарен. Она же не одна задача там...


 
Jeer ©   (2008-01-30 15:03) [9]


> VAD*Anti Gopn!k ©   (30.01.08 14:49) [6]


Навскидку:
- пузырек
- Шелла
- Простые вставки
- Бинарные вставки
- Поиск минимума ( максимума)
- Пирамидальная
- Выбором
- Quick

В качестве домашнего задания - разобраться с каждой


 
Riply ©   (2008-01-30 15:05) [10]

> Ограничения: время работы 2 с

Объясните пожалуйста, что это за ограничение ?

Или я чего-то не понимаю, или это бред сивой кобылы :)
Единственный случай, когда оно имеет смысл, если оно отведено на написание алгоритма. :)


 
VAD*Anti Gopn!k ©   (2008-01-30 15:05) [11]


> Jeer ©   (30.01.08 15:03) [9]

Всех не знаю, НО

- пузырек
- Поиск минимума ( максимума)

отпадает ввиду вложенных циклов


 
Jeer ©   (2008-01-30 15:10) [12]


> если оно отведено на написание алгоритма. :)


Именно:)


 
atruhin ©   (2008-01-30 15:49) [13]

Может я чего не понимаю, но из условия задачи непонятно:
1. чему равно n, т.е. сколько точек.
2. время работы 2 с, на каком процессоре, Intel 386 или современный 4x ядерник.


 
Denis__ ©   (2008-01-30 15:51) [14]


> Задача:
> "на числовой прямой задано n точек. Необходимо найти среди
> них две ближайшие. Значения координат x[i] не превосходят
> 10^9 по абсолютной величине.


> Задача с областной олимпиады.

Возникает вопрос : В какой стране? Не верю, что в России! НЕ ВЕРЮ что областная олимпиада! У нас(Казахстан) задачи на уровне города такие, что прежде чем решать мы сидим обычно минут по 40. А потом уже - кодить. А если посмотреть примеры в Инете, то вообще...


 
atruhin ©   (2008-01-30 15:54) [15]

В догонку:
>>размер памяти 64 мб.
Размер какой памяти? Размер физической памяти компьютера, размер памяти занимаемой программой,
размер динамически запрашиваемой памяти.


 
Kerk ©   (2008-01-30 15:59) [16]


> Denis__ ©   (30.01.08 15:51) [14]

Я когда на всероссийской был, там была пара задач, которые решит любой. Практически официально заявлялось, что оно надо, чтоб не травмировать психику аутсайдерам :)


 
Denis__ ©   (2008-01-30 15:59) [17]


> размер памяти занимаемой программой,
> размер динамически запрашиваемой памяти.

по-моему вместе. Могу путать.

> > Ограничения: время работы 2 с
>
> Объясните пожалуйста, что это за ограничение ?

Да-да! Время раьоты программы!
for i:=0 to 1000000000 do
begin
    for j:=0 to 1000000000 do
     ...
end;

:D


 
Denis__ ©   (2008-01-30 16:02) [18]


> Я когда на всероссийской был, там была пара задач, которые
> решит любой. Практически официально заявлялось, что оно
> надо, чтоб не травмировать психику аутсайдерам :)

Ну, на Всероссах я не был:) но задачи оттуда видел. Страшно, если честно.


 
Anatoly Podgoretsky ©   (2008-01-30 16:03) [19]

> VAD*Anti Gopn!k  (30.01.2008 14:31:00)  [0]

Возьми компьютер по быстрее.


 
Anatoly Podgoretsky ©   (2008-01-30 16:04) [20]

> Palladin  (30.01.2008 14:54:07)  [7]

Стреляли


 
Denis__ ©   (2008-01-30 16:04) [21]

Автобусный диспетчер (XIV Всероссийская олимпиада по информатике)

На кольцевом маршруте №54 протяженностью S, проходящем мимо пансионата "Энергетик", работает N автобусов. Автобусы пронумерованы числами от 1 до N в порядке их следования по маршруту. Автобус с номером 1 движется за автобусом с номером N. Расписание составлено таким образом, что автобусы движутся с одинаковой скоростью V0 и с равными интервалами между ними. Движение автобусов контролирует диспетчер.
В 12 часов дня некоторые K автобусов одновременно снимаются с маршрута и отправляются на обед. Для восстановления равенства интервалов между автобусами, продолжающими движение по маршруту, потребуется некоторое время Т и, возможно, изменение скорости некоторых автобусов по команде диспетчера. В течение этого времени автобусы должны двигаться с постоянными скоростями из интервала [Vmin, Vmax], назначенными диспетчером. Изменение скорости движения автобуса происходит мгновенно. По истечении времени Т автобусы возобновляют движение по маршруту со скоростью V0.
Требуется написать программу для автоматического диспетчера, которая вычисляет минимальное время Tmin, за которое интервалы движения между оставшимися автобусами станут равными, и скорости движения каждого из них в течение этого времени.

Входные данные
Входной файл bus.in содержит две строки.
В первой строке находятся натуральные числа N, К, S, Vmin, Vmax и V0, где K < N <= 10000, S <= 10000, Vmin < Vmax <= 10000, Vmin <= V0 <= Vmax.
Во второй строке расположены в порядке возрастания K чисел - номера автобусов, снятых с маршрута. Все данные в строках разделены пробелами.

Выходные данные
В первой строке выходного файла bus.out должно находиться значение Tmin.
В каждой из последующих N - K строк должны быть по два разделенных пробелом числа - номер автобуса на маршруте и скорость его движения в течение времени Tmin. Номера автобусов упорядочить по возрастанию. Значения Tmin и скоростей выводить с точностью до 4-х значащих цифр после десятичной точки.

Пример 1
Входной файл bus.in
4 1 60 21 70 60
3
Выходной файл bus.out
0.2041
1 45.5
2 21
4 70

Пример 2
Входной файл bus.in
4 2 40 30 80 50
2 4
Выходной файл bus.out
0
1 50
3 50


 
clickmaker ©   (2008-01-30 16:05) [22]


> Да-да! Время раьоты программы!
> for i:=0 to 1000000000 do
> begin
>     for j:=0 to 1000000000 do
>      ...
> end;

на собеседованиях-тестах такие дают иногда.
дано: проц 1 ГГц, считать, что он весь отдан одному процессу, подсчитать, сколько будет выполняться N сложений/умножений и пр.


 
atruhin ©   (2008-01-30 16:52) [23]

> на собеседованиях-тестах такие дают иногда.
> дано: проц 1 ГГц,

Только у автора в вопросе процессор как раз не указан.


 
Правильный_Вася   (2008-01-30 16:56) [24]


> Необходимо найти среди них две ближайшие

ближайшие к чему?
к началу координат? к друг другу?


 
clickmaker ©   (2008-01-30 16:59) [25]


>  у автора в вопросе процессор как раз не указан

а там обратная задача: на каком процессоре данный цикл будет выполняться 2 сек? )


 
имя   (2008-01-30 19:01) [26]

Удалено модератором


 
Lip   (2008-01-30 19:21) [27]


> В догонку:>>размер памяти 64 мб.Размер какой памяти? Размер
> физической памяти компьютера, размер памяти занимаемой программой,
>  размер динамически запрашиваемой памяти.


Вы видимо никогда не участвовали в школьных олимпиадах.
Естественно это размер памяти занимаемой программой в оперативной памяти.

> Denis__ ©   (30.01.08 16:04) [21]
> Автобусный диспетчер (XIV Всероссийская олимпиада по информатике)


Ну и какой смысл выкладывать сюда задачу с Всероссийской олимпиады? Ясно же что никто решать не будет  да и не решит.


> Возникает вопрос : В какой стране? Не верю, что в России!
>  НЕ ВЕРЮ что областная олимпиада! У нас(Казахстан) задачи
> на уровне города такие, что прежде чем решать мы сидим обычно
> минут по 40


Что это ты не веришь? Учитывай, что есть провинциальные городки, в которых задачи соответствующие и есть такой город как Москва,
где чтобы дойти до этапа городской олимпиады нужно пройти ещё несколько этапов.


> Riply ©   (30.01.08 15:05) [10]
> > Ограничения: время работы 2 сОбъясните пожалуйста, что
> это за ограничение ?


А это вы спросите у составителей задач.
И вообще, имхо, ориентироваться на 2 сек. особо не стоит. Просто нужно стараться решать задачу оптимальным алгоритмом.

ТАк что delphi это одно, а олимпиадные задачи совсем другое!


 
VAD*Anti Gopn!k ©   (2008-01-30 19:51) [28]

2 all

Я так понял что никто не может найти решение. Как и я. Поэтому, я написал тупой алгоритм для того, чтобы получить несколько лишних балов. То есть присерно 50 из 100 возможных. И я думаю, что каждый и вас поступил бы также. Это лишь 1 тур, завтра второй. Вот на нем уже будут задачки с рекурсией, я это люблю :) Ну ладно, спасибо всем за попытки помощи.


 
VAD*Anti Gopn!k ©   (2008-01-30 19:59) [29]

VAD*Anti Gopn!k ©   (30.01.08 19:51) [28]
приМерно 50... конечно


 
Lip   (2008-01-30 21:05) [30]


> Я так понял что никто не может найти решение. Как и я. Поэтому,
>  я написал тупой алгоритм для того, чтобы получить несколько
> лишних балов. То есть присерно 50 из 100 возможных. И я
> думаю, что каждый и вас поступил бы также. Это лишь 1 тур,
>  завтра второй. Вот на нем уже будут задачки с рекурсией,
>  я это люблю :) Ну ладно, спасибо всем за попытки помощи.
>


Чел, не советую тебе здесь задавать вопросы связанные с олимпиадным программированием. Тут такое понятие как ACM малоизвестно.

По поводу задачи.
Я бы сначала отсоритровал координаты сортировкой с логарифмической сложностью. А потом бы прошелся по массиву сравнивая 2 соседних элемента.
Получается n*log(n) + n, против N^2. Всяк лучше!


 
Kerk ©   (2008-01-30 21:13) [31]


> Lip   (30.01.08 21:05) [30]
> Чел, не советую тебе здесь задавать вопросы связанные с
> олимпиадным программированием. Тут такое понятие как ACM
> малоизвестно.

Ты откуда такой умный взялся? :)


 
korneley ©   (2008-01-30 21:27) [32]


> Lip   (30.01.08 21:05) [30]
> не советую тебе здесь задавать вопросы связанные с олимпиадным  
> программированием. Тут такое понятие как ACM малоизвестно

Забавный парень... :) Знает, как пользоваться "сортировкой с логарифмической сложностью" и, наверное, "AСM" (Anti Coding Method)


 
Lip   (2008-01-30 21:32) [33]


> такой умный

спасибо! :)


> Забавный парень...


Спасибо :)


> Знает, как пользоваться

Пользоваться и понимать разные вещи :)
Ещё я знаю про сортировку пузырьком, которую тут путают с сортировкой вставками :)


 
Kerk ©   (2008-01-30 21:34) [34]

Ясно, очередной школьник. Сам таким был :)


 
korneley ©   (2008-01-30 21:43) [35]


> Lip   (30.01.08 21:32) [33]

Вообще-то на вопрос Jeer ответил, еще в [3] и [4] (с учетом того, что сортировкой до этого и не пахло, см. [6])... И, да пребудет с тобой ACM (Absolute Checking Matrix)!!!


 
Lip   (2008-01-30 21:46) [36]


> Ясно, очередной школьник. Сам таким был :)


Нее.. надо было сказать что типа в детский сад интернет провели, как вы это любите :) А.. что хорошие шутки, с такими только в камеди клаб :)


 
Kerk ©   (2008-01-30 21:48) [37]


> Lip   (30.01.08 21:46) [36]

Ответ на вопрос автора в самом начале ветки. А вот ты ничего полезного ему не сообщил, зато умные слова знаешь ;)


 
Рамиль ©   (2008-01-30 21:49) [38]


> Lip   (30.01.08 21:46) [36]

Пароль на Navity давай, потом буш тут учить, кто может, а кто не может.


 
Lip   (2008-01-30 21:51) [39]


> Вообще-то на вопрос Jeer ответил, еще в [3] и [4] (с учетом
> того, что сортировкой до этого и не пахло, см. [6])... И,
>  да пребудет с тобой ACM (Absolute Checking Matrix)!!!


Честно говоря не обратил внимания на эти пункты =)


 
ketmar ©   (2008-01-30 21:56) [40]

>[22] clickmaker ©(30.01.08 16:05)
это ж где такой идиотизм спрашивают-то? O_o


 
ketmar ©   (2008-01-30 21:56) [41]

>[39] Lip (30.01.08 21:51)
шо, нет времени читать, декомпилятор никак не запускается?


 
Lip   (2008-01-30 22:02) [42]


> шо, нет времени читать, декомпилятор никак не запускается?


Времени нет. Да и зачем его собственно тратить на чтение здесь постов?
Что-то новое узнаю?? =)

Ну и тут рекламу своего декомпилятора суете.
Все давно поняли что это геморный вирус. Да и веток давно тех нету.


 
korneley ©   (2008-01-30 22:05) [43]


> Lip   (30.01.08 21:51) [39]
>  !!Честно говоря не обратил внимания на эти пункты =)

Ну, дык, тщательнЕе надо читать, о, поклонник Abstract Community of Machines


 
Kerk ©   (2008-01-30 22:09) [44]


> korneley ©   (30.01.08 22:05) [43]

Имхо, это Abstract Communists-Machines


 
korneley ©   (2008-01-30 22:13) [45]


> Lip   (30.01.08 22:02) [42]
>Ну и тут рекламу своего  декомпилятора суете.

:))) ketmar = ZoldBerger!!! Ржунимагу (простите за албанцкий). Действительно, постов не читаем, но с выводами не церемонимся...


 
Lip   (2008-01-30 22:15) [46]

прикольно вы умеете слова подбирать для трех букв. Талант!


 
korneley ©   (2008-01-30 22:28) [47]


> Lip   (30.01.08 22:15) [46]

При чем здесь кто-то другой, кроме тебя? [30] - твоё произведение, вот и предположения, что бы это могло значить. Продолжай исследовать Analog Compiler Means


 
Lip ©   (2008-01-30 22:39) [48]


> При чем здесь кто-то другой, кроме тебя? [30] - твоё произведение,
>  вот и предположения, что бы это могло значить. Продолжай
> исследовать Analog Compiler Means


емоее... да вы действильно в танке.
Вы гуглом пользуетесь или только посылаете всех туда?

ACM - Association for Computing Machinery =)

откройте браузер и введите www.google.ru, только без ошибок и введите "ACM" и нажмите "найти". Потом кликните по 2 ссылке


 
ketmar ©   (2008-01-30 22:55) [49]

>[42] Lip (30.01.08 22:02)
тебя вообще желательно изолировать от интернета. интернет разрушает неокрепший детский разум.


 
ferr   (2008-01-30 22:57) [50]

Лично смотрел как решения этих оболдуев тестировались. =)

Компьютер был этак мегагерц 600, что огаваривается в условии.

Ну и комплект задач спускается с мин образования, раньше старались своими силами, щас вот взяли дефолтный. Комплект возмутительно лёгкий был.


 
korneley ©   (2008-01-30 23:03) [51]

Напомню [30]:

> ...Тут такое понятие как ACM малоизвестно...

Вот я занялсЯ исследованием неизвестных мне тайных смыслов аббревиатуры. В контексте поста.


 
korneley ©   (2008-01-30 23:05) [52]

Мои и (Керка), смыслы, нравятся больше. Опять же в контексте... :)


 
Lip ©   (2008-01-30 23:07) [53]


> разрушает неокрепший детский разум.


У вас какие-то комплексы по поводу возраста.
Может вы стареете?


 
Lip ©   (2008-01-30 23:10) [54]


> Вот я занялсЯ исследованием неизвестных мне тайных смыслов
> аббревиатуры.


Я же вроде объяснил про гугль =) Какой шаг не понятен?


 
ketmar ©   (2008-01-30 23:13) [55]

>[53] Lip ©(30.01.08 23:07)
да всего лишь детей жалко. а ещё жальче уборщиц: у дитя моск взорвётся — и всё. а уборщицам потом стены и пол отдраивать…


 
Lip ©   (2008-01-30 23:16) [56]


> да всего лишь детей жалко. а ещё жальче уборщиц: у дитя
> моск взорвётся — и всё. а уборщицам потом стены и пол отдраивать…


Поразили...
Я был лучшего мнения о вашем уровне интеллекта...


 
ketmar ©   (2008-01-30 23:20) [57]

>[56] Lip ©(30.01.08 23:16)
ужас. вот теперь опять буду спать плохо, всё думать: что бы такого сделать, чтобы вернуть себе уважение Lip"а. а то без этого мне девушки не улыбаются и пиво в магазинах продают втридорога.


 
korneley ©   (2008-01-30 23:21) [58]


> Lip ©   (30.01.08 23:10) [54]
> Я же вроде объяснил про гугль =) Какой шаг не понятен?

 Непонятно зачем Google, если умеем буквы складывать в слова, а не читать.


 
Lip ©   (2008-01-30 23:41) [59]


> ужас. вот теперь опять буду спать плохо, всё думать: что
> бы такого сделать, чтобы вернуть себе уважение Lip"а. а
> то без этого мне девушки не улыбаются и пиво в магазинах
> продают втридорога.


Тебе девушки на эране монитора улыбаются??? :)



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.61 MB
Время: 0.068 c
6-1181809096
DVM
2007-06-14 12:18
2008.03.09
Неблокирующий Connect() и недоступный узел.


15-1201951330
ketmar
2008-02-02 14:22
2008.03.09
любителям консольных утилит — просьба погонять


3-1192783500
DelphiN!
2007-10-19 12:45
2008.03.09
SQL по выводу постоянных пользователей


15-1201650011
Maloj2007
2008-01-30 02:40
2008.03.09
Текст + графика


2-1202714361
gerda
2008-02-11 10:19
2008.03.09
dephi unix





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский