Показать сообщение отдельно
Старый 05.05.2005, 15:36     # 24
Trotil
Advanced Member
 
Аватар для Trotil
 
Регистрация: 21.04.2005
Адрес: град Москва
Сообщения: 431

Trotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собой
Цитата:
Сообщение от Trotil
Этап 1: Движение точки А вдоль прямой x=0.
Собственно законы движения на этом этапе выводить совсем необязательно. Достаточно рассмотреть конечное положение этого этапа.

Для точки А: X_a=0, Y_a=и
Для точки D: X_d=sqrt(y^2-Y_a^2), Y_d=0

Для следующего этапа нам потребуется точка B и зависимость ее от точки А.

Уравнение прямой через A и B:
(y-Y_a)/(Y_b-Y_a)=(x-x_a)/(x_b-x_a) (1)
y-Y_a=(x-X_a)(((Y_b-Y_a)/(x_b-x_a))
Поскольку АВ перпендикулярно АD, то
(Y_b-Y_a)/(x_b-x_a)=(X_d-X_a)/(Y_d-Y_a)

Подставляем в (1) - получили уравние прямой, выраженное через координаты точки А.

Можно переходить к этапу 2. Этап самый труоемкий, решение будет дописано позже.
(14:59)

Цитата:
Сообщение от EvroStandart
Я сам немного не точно понял. Наоборот: коридор не может быть типа "Т". То есть, это не два коридора, а один поворачивающий на 90 градусов. Он делится на два по ширине. До и после поворота ширина коридора отличается. Каждый коридор шире чем пианино.
Нужно не вычислять движение, а найти ответ: пролезет или нет.

А вот без перебора наверно никак....
О! Задача упрощается! Теперь этап 2 совсем не нужен - а он самый трудный в расчетах был. Перебор - это конечно хорошо - но долго(понятие конечно относительное). Задача ведь олимпиадная - скорость тоже важна! Можно ведь вывести формулу - а потом просто подсчитать, и все.
Скоро выдам исправленную версию.


Исправленная версия

Итак, если если вы читали, что написано ранее, то это вам покажется сущим пустяком!

Упрощения в связи с новым условием:
X_a(t)=0 - для любого t

Точка A: (0, Y_a)
Точка D: (x_d, 0)

x_d=sqrt(y^2-Y_a^2)

Отсюда в качестве переменной достаточно взять Y_a и Еще нам понадобится Y_с. Ее можно вычислить так:
Y_c^2+(X_d-X_с)^2= BD^2=x^2+y^2 (1)
Из другого треугольника:
(x+y)^2=(X_d+X_c)^2+Y_c^2

Из этих уравнений можно получить, что X_c=xy/2*x_d
Подставляя X_с в любое уравнение, можно получить Y_с.

Уравнение прямой, проходящее через A и D:
(y-Y_a)/(Y_d-Y_a)=(x-x_a)/(x_d-x_a)
(y-Y_a)/(-Y_a)=(x)/(x_d)
y=((-Y_a)/(x_d))(x)+Y_a (2)

Уравнение прямой через В и С:
эта прямая параллельна прямой АD => выразим через (2) и (Y_c)
y2=((-Y_a)/(x_d))(x)+Y_a + 2(Y_c - y_a) (3)

Вот почти и все. у2(a - ширина коридора) - это есть расстояние от нижней стенки до стороны ВС на уровне точки Q (угла стенки). Осталось исследовать эту функцию на max. (пределы исследования: Y_a=y до Y_a=0 - конец маневра)
В программе полученный результат сравнивается с другой шириной коридора) - и программа выдает нужный ответ... Исследование функции на экстремумы проходили в школе, я надеюсь?

PS1: Проверьте вычисления, может где-то ошибка закралась...
PS2: Записывать окончательную формулу в приведенном виде не стал - в режиме текстовой строки прочитать ее довольно трудно. Но здесь просто надо поставить одни формулы в другую и получить искомую формулу...

Последний раз редактировалось Trotil; 05.05.2005 в 17:59.
Trotil вне форума