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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2012, 21:59   #11
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
нужен совет
Всегда пожалуйста.
1) Исправить свой пост, принося всем извинение
2) Т.к. раздел для спамеров удалили, то Вам лесом.
Poma][a вне форума Ответить с цитированием
Старый 09.10.2012, 08:42   #12
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Цитата:
2. ELSE IF L(a) mod N > L(b) mod N - финальная точка большего пути лежит в меньшем секторе
По условию этого быть не может
Кто вам такое сказал? Рассмотрим для барабана с 10 секторами:
- точка А: делает один оборот и проходит 7 секторов
- точка Б: делает два оборота и проходит 4 сектора
как итог, дальняя точка находится в меньшем секторе, чем ближняя.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 09.10.2012, 13:32   #13
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

DiemonStar, ясно
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 10.10.2012, 13:20   #14
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Походу у разработчиков странное чувство юмора...

Цитата:
Ограничения: время – 2s/Java 2s, память – 256MiB Послать решение Посылки Темы Где Обсудить (0)
Возрождая древние традиции английских рыцарей, в одном городе члены школьного клуба любителей информатики каждую неделю собираются за круглым столом и обсуждают результаты последних соревнований.
Руководитель клуба Иван Петрович недавно заметил, что не все ребята активно участвуют в обсуждении. Понаблюдав за несколькими заседаниями клуба, он заметил, что активность члена клуба зависит от того, кто с кем сидит рядом.
В клуб приходят на занятия m мальчиков и n девочек. Иван Петрович заметил, что мальчик активно участвует в обсуждении только тогда, когда непосредственно рядом с ним с обеих сторон от него сидят девочки, а девочка активно участвует в обсуждении только тогда, когда непосредственно рядом с ней с одной стороны от нее сидит мальчик, а с другой – девочка.
Желая сделать заседание клуба как можно более интересным, Иван Петрович решил разместить участников за круглым столом таким образом, чтобы как можно больше членов клуба приняло активное участие в обсуждении.
Требуется написать программу, которая по заданным числам m и n выведет такой способ размещения m мальчиков и n девочек за круглым столом, при котором максимальное количество членов клуба будет активно участвовать в обсуждении.
Формат входного файла
Входной файл содержит два целых числа m и n, разделенных ровно одним пробелом (0 ≤ m ≤ 1000, 0 ≤ n ≤ 1000, m + n ≥ 3).
Формат выходного файла
Выходной файл должен содержать строку с расположенными в некотором порядке m символами "B" (заглавная латинская буква) и n символами "G" (заглавная латинская буква). Символ "B" означает мальчика, а символ "G" – девочку.
Символы следует расположить в том порядке, в котором нужно разместить членов клуба вокруг стола. Соседние символы соответствуют членам клуба, которые сидят рядом. Рядом сидят также члены клуба, соответствующие первому и последнему символу выведенной строки.

Пример ввода 1

1 2

Пример вывода 1

BGG

Пример ввода 2

2 2

Пример вывода 2

BGBG

Пояснения к примерам
В первом примере все члены клуба примут активное участие в обсуждении.
Во втором примере мальчики примут активное участие в обсуждении, а девочки нет. В этом примере можно также разместить членов клуба следующим образом: «BBGG». В этом случае активное участие в обсуждении примут обе девочки, а мальчики – нет. Разместить всех так, чтобы три или четыре члена клуба приняли активное участие в обсуждении, нельзя.
Ну, как вам такая задачка? ИМХО при таком раскладе участвовать в плодотворном обсуждении задачек сложновато будет, по крайней мере мальчикам.

Это в этом году было, я ее решил
Код:
if m = n shl 1 then for i:=1 to m do str:=str+'BGG'
  else
  if m>n shl 1 then 
     if odd(n) then 
       begin
         str:='G';
         for i:= 1 to n shr 1 do str:=str+'BGG';
         for i:=m - n shr 1 do str:=str+'B';
       end
      else
        begin
         for i:= 1 to n shr 1 do str:=str+'BGG';
         for i:=m - n shr 1 do str:=str+'B';
       end
    else
      begin
       for i:= 1 to m do 
          str:=str+'BGG';
       for i:=1 to n-m shl 1 do str:=str+'G'
      end;
a.k.a. Angelicos Phosphoros
Мой сайт

Последний раз редактировалось New man; 10.10.2012 в 13:22.
New man вне форума Ответить с цитированием
Старый 12.10.2012, 16:49   #15
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Я так и не понял как получили решение этой задачи:
Цитата:
7. Космический кегельбан
close

close


Ограничения: время – 2s/Java 2s, память – 256MiB Послать решение Посылки Темы Где Обсудить (0)
На планете Плюк открылся новый космический кегельбан. Поле для кегельбана представляет собой бесконечную плоскость, на которой расставлены кегли.
Каждая кегля представляет собой высокий цилиндр с основанием в виде круга радиусом r метров. Все кегли одинаковые. Кегли расставлены по следующим правилам. Кегли образуют n рядов, в первом ряду стоит одна кегля, во втором – две, и так далее. В последнем n-м ряду стоит n кеглей. Введем на плоскости систему координат таким образом, чтобы единица измерения была равна одному километру. Центр единственной кегли в первом ряду находится в точке (0, 0). Центры кеглей во втором ряду находятся в точках (–1, 1) и (1, 1). Таким образом, центры кеглей в i-м ряду находятся в точках с координатами (–(i – 1), i – 1), (–(i – 3), i – 1), …, (i – 1, i – 1).
Игра происходит следующим образом. Используется шар с радиусом q метров. Игрок выбирает начальное положение центра шара (xc, yc) и вектор направления движения шара (vx, vy). После этого шар помещается в начальную точку и двигается, не останавливаясь, в направлении вектора (vx, vy). Считается, что шар сбил кеглю, если в процессе движения шара имеет место ситуация, когда у шара и кегли есть общая точка. Сбитые кегли не меняют направления движения шара и не сбивают соседние кегли при падении.
На рисунке приведен пример расположения кеглей для r = 500, n = 4 и шара для q = 1000, xc = –2, yc = –2, vx = 1, vy = 1.

Требуется написать программу, которая по заданным радиусу кегли r, количеству рядов кеглей n, радиусу шара q, его начальному положению (xc, yc) и вектору направления движения (vx, vy) определяет количество кеглей, сбитых шаром.
Формат входного файла первая строка входного файла содержит два целых числа: r и n, разделенных ровно одним пробелом (1 ≤ r ≤ 700, 1 ≤ n ≤ 200 000).
Вторая строка входного файла содержит целое число q (1 ≤ q ≤ 109).
Третья строка входного файла содержит два целых числа xc и yc, разделенных ровно одним пробелом (–106 ≤ xc ≤ 106, –106 ≤ yc, 1000·yc < –(r + q) ).
Четвертая строка входного файла содержит два целых числа vx и vy, разделенных ровно одним пробелом (–106 ≤ vx ≤ 106, 0 < vy ≤ 106).
Формат выходного файла
Выходной файл должен содержать одно целое число – количество сбитых кеглей.

Пример ввода

500 4
1000
-2 -2
1 1

Пример вывода

7

Пояснения к примеру
Рисунок ниже показывает, какие кегли будут сбиты (такие кегли обозначены «х»).


Система оценивания
Правильные решения для тестов, в которых 1 ≤ n ≤ 1000 и vx = 0, будут оцениваться из 20 баллов.
Правильные решения для тестов, в которых 1 ≤ n ≤ 1000 и vx ≠ 0, будут оцениваться еще из 20 баллов.
Правильные решения для тестов, в которых 1000 < n ≤ 200 000 и vx = 0, будут оцениваться еще из 20 баллов.
Чтобы получить оставшиеся 40 баллов, решение должно правильно работать также для тестов, в которых 1000 < n ≤ 200 000 и vx ≠ 0.
Вот объяснение, которое я не понял
Цитата:
Задача 7. «Космический кегельбан »
Переформулируем задачу на геометрическом языке. Дано несколько кругов радиуса r (кегли) и полоса ширины 2q (траектория шара). Требуется подсчитать, сколько окружностей имеют хотя бы одну общую точку с полосой.
Заменим окружности на точки, а полосу ширины 2q на полосу ширины 2(q + r).
Тогда задача сведется к эквивалентной: сколько точек (центров кеглей) лежат в расширенной полосе, то есть находятся на расстоянии не более (q + r) от прямой, по которой движется центр шара. Заметим, что поскольку по условию задачи каждая точка шара лежит изначально ниже любой точки каждой кегли, то можно рассматривать не часть полосы выше шара, а всю полосу: на ответ это не повлияет.
Запишем неравенством условие принадлежности точки полосе. Пусть А – начальное положение центра шара, вектор AB имеет координаты (vx, vy), P – центр некоторой кегли.
Тогда расстояние от точки P до прямой AB равно |[AP, AB]| / |AB| (квадратными скобками обозначено псевдоскалярное произведение векторов), а условие принадлежности точки полосе запишется так:
|[AP, AB]| / |AB| ≤ q + r.
Логику того, что надо проверять принадлежность центра кегли к полосе понял, не понял при чем здесь псевдо скалярное произведение векторов
Не можете объяснить? пожалуйста.
p.s. Начало появляться устойчивое желание взять учебники по геометрии и алгебре 9 класса и перечитать заново
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 12.10.2012, 21:03   #16
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

|[AP, AB]| / |AB| = |AP| * |AB| * sin(AP^AB) / |AB| = |AP| * sin(AP^AB) - понятно, что это расстояние от P до AB, или всё ещё нет?
Somebody вне форума Ответить с цитированием
Старый 13.10.2012, 09:46   #17
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
при чем здесь псевдо скалярное произведение векторов
Естественно, для вычисления кратчайшего расстояния от центра кегли к траектории движения шара.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 14.10.2012, 10:22   #18
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Цитата:
Сообщение от Somebody Посмотреть сообщение
|[AP, AB]| / |AB| = |AP| * |AB| * sin(AP^AB) / |AB| = |AP| * sin(AP^AB) - понятно, что это расстояние от P до AB, или всё ещё нет?
Самое последнее - понятно, т.к. исходит из геометрического смысла синуса
p.s. Можно ли в bat файлах указать такую команду, чтобы батник ждал ответа пользователя?
Как readln без параметов в консольных приложения. Хочу посмотреть, что он выводит
a.k.a. Angelicos Phosphoros
Мой сайт

Последний раз редактировалось New man; 14.10.2012 в 10:25.
New man вне форума Ответить с цитированием
Старый 14.10.2012, 11:47   #19
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от New man Посмотреть сообщение
p.s. Можно ли в bat файлах указать такую команду, чтобы батник ждал ответа пользователя?
Как readln без параметов в консольных приложения. Хочу посмотреть, что он выводит
Код:
pause
"Ваше сообщение слишком короткое" :-/
Somebody вне форума Ответить с цитированием
Старый 23.10.2012, 21:46   #20
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
7. Космический кегельбан
ОО, вот в 2011-2012 учебном году эта задача была на областной олимпиаде по информатике
_-Re@l-_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
А почему нет темы об олимпиаде-2012 в Лондоне?.. mv28jam Свободное общение 60 13.08.2012 19:48
Задачи по олимпиаде Darick Помощь студентам 7 23.12.2011 15:45
задача на олимпиаде была klubkov Помощь студентам 0 24.10.2011 18:06
Дали детям две задачки на олимпиаде по информатике O_O Каля-маля Помощь студентам 8 10.11.2008 17:29
Как подготовиться к олимпиаде? Kn793 Помощь студентам 16 26.07.2008 12:22