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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2012, 18:40   #1
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию Несколько олимпиадных задач

Сегодня сходил на олимпиаду. Результат средний.
Хочу поделится задачами, которые не решил.

Задание 1:
Ограничение по времени: 1с
Ограничение по памяти: 64 МБ

Задача:
Жил был Чудак (на букву М). Однажды этот чудак, прогуливаясь по чудному городу, увидел два чудных числа a и b, он был так поражен этими числами, что сломя голову побежал домой. Дома он сразу же начал составлять множество чисел. Множество составляется по такому алгоритму:
• 1. Берем пустое мн-во
• 2. Добавляем в множество числа a и b
• 3. Выбираем из множества два любых различных числа и добавляем во множество их произведение, повторяем шаг новер 3 (неоднократно)

Пока чудак составлял свое множество, к нему приходили его чудныхе друзья ит у каждого из них было свое любимое число d, и каждый хотел знать входит ли это число во множество чудака. Но дело в том, что у чудака нет времени отвечать на эти вопросы. Помогите ему.

Входной файл:
Даны три числа через пробел a,b,d (1 <= a,b,d<= 1E16; a != b)/

Выходной файл:
Если число d находится во множетсве чудака, то выведите YES, иначе выведите NO
*********************************** ***********************

P.S.
Писать можно почти на всем стандартном:
• java
• C#
• C
• C++
• Basic
• Pascal
• Delphi
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 04.03.2012, 18:49   #2
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Задание 2:
H. Дерево NEXUS

Ограничения те же.

Задача:
Жил был Чудак. Чудак любит деревья NEXUS. Деревом NEXUS он называет любое (необязательно сбалансированное) бинарное дерево, в котором только в листах дерева лежат числа и сумма по всем листам A[i] * P[i] минимальна, где A[i] - число в i-ом листе, P[i] - длина пути от i-го листа до корня дерева. ваша задача для данных N чисел найти дерево NEXUS.

Входной файл:
В первой строке дано N - кол-во чисел (1 <= N <= 20). Во второй строке через пробел даны сами числа A[i] (1 <= A[i] <= 1000).

Выходной файл:
Для дерева NEXUS построенного на данном наборе чисел, вывести его сумму A[i] * P[i].

Пример:
test.in:
4
7 10 5 10

test.out
64
*********************************** ******************
Остальное не буду выкладывать, т.к. там рисунки нужны, да и задачи решабельные, просто много времени бы ушло. У меня не было столько.
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.

Последний раз редактировалось MooNDeaR; 04.03.2012 в 18:51.
MooNDeaR вне форума Ответить с цитированием
Старый 04.03.2012, 18:59   #3
Alexandr555
Форумчанин
 
Регистрация: 23.03.2011
Сообщений: 310
По умолчанию

что то лень вдумываться, сам участвую в олимпиадах с такими задачками, для меня с методом графов проблемные
Alexandr555 вне форума Ответить с цитированием
Старый 10.03.2012, 20:02   #4
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Цитата:
Сообщение от MooNDeaR Посмотреть сообщение
P.S.
Писать можно почти на всем стандартном:
• java
• C#
• C
• C++
• Basic
• Pascal
• Delphi
А где Haskell? Или хотя бы Python?
anyx вне форума Ответить с цитированием
Старый 10.03.2012, 22:06   #5
Corus
Пользователь
 
Аватар для Corus
 
Регистрация: 27.07.2011
Сообщений: 15
По умолчанию

Первая задача:
В беск. цикле делим d на то из чисел a и b, на которое оно делится без остатка. Рез-т присваиваем d. Если на каком-то шаге:
1). d ни на a, ни на b не делится: NO.
2). d равно a или b: YES.
Corus вне форума Ответить с цитированием
Старый 10.03.2012, 22:08   #6
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию

Ну первая задача вроде несложная. Если d можно разложить в произведение a*a*...*a*b*b*...*b, то тогда оно входит в множество.
Nobody expects Spanish Inquisition!
Juffin вне форума Ответить с цитированием
Старый 11.03.2012, 07:18   #7
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
Писать можно почти на всем стандартном
Нет самого главного. Assembler'а. На моей олимпиаде кроме паскаля вообще ничего не проверялось.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 11.03.2012 в 07:20.
_PROGRAMM_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько задач as1212 Помощь студентам 1 18.10.2011 11:24
несколько задач Degster Паскаль, Turbo Pascal, PascalABC.NET 0 23.05.2011 15:40
Несколько задач Degster Паскаль, Turbo Pascal, PascalABC.NET 3 30.04.2011 16:39
Несколько задач Nellas Помощь студентам 24 31.10.2009 14:22
Несколько задач hvaran Помощь студентам 0 07.07.2009 17:31