ЗАДАЧИ
problems.ru |
О проекте
|
Об авторах
|
Справочник
Каталог по темам | по источникам | |
|
|
||||||||||||||||||||||||||||||||||||||||||||||
Страница: << 3 4 5 6 7 8 9 [Всего задач: 44]
Замечание. Можно предполагать , что предметы уже расположены в порядке возрастания или убывания веса А[i], стоимости В[i], цены В[i] / A[i] или какого-либо иного признака.
Максимальное время работы на одном тесте: 1 секунда На плоскости задано N векторов - направленных отрезков, для каждого из которых известны координаты начала и конца (вектор, у которого начало и конец совпадают, называется нуль-вектором, можно считать, что нуль-вектор лежит на любой прямой, которая через него проходит). Введем следующие три операции над направленными отрезками на плоскости: 1) Направленные отрезки ненулевой длины, лежащие на пересекающихся прямых, можно заменить на их сумму, причем единственным образом. В этом случае отрезки переносятся вдоль своих прямых так, чтобы их начала совпадали с точкой пересечения прямых, и складываются по правилу сложения векторов (правилу параллелограмма, при этом началом результирующего вектора является точка пересечения прямых): 2) Направленные отрезки, лежащие на одной прямой, также можно заменить на их сумму. Для этого один из отрезков (любой) нужно перенести в начало второго из них и сложить по правилу сложения векторов на прямой: Это правило применимо и в случае, когда один из векторов, или даже оба, являются нуль-векторами. Заметим, что если складываемые векторы противоположно направлены и имеют одну и ту же длину, то результатом их сложения является нуль-вектор. 3) В любой точке плоскости можно породить два противоположно направленных отрезка равной (в том числе и нулевой) длины: Будем говорить, что некоторая система векторов B эквивалентна системе A, если от системы A можно перейти к B с помощью конечной последовательности перечисленных выше операций. Требуется получить любую систему векторов, эквивалентную заданной, состоящую из минимально возможного числа векторов. Формат входных данных В первой строке входного файла f.in записано число N - количество заданных векторов (1 < N ≤ 1000). В каждой из следующих N строк через пробел записаны четыре числа, обозначающие координаты начала и конца каждого из векторов соответственно. Все координаты - целые числа, по модулю не превосходящие 1000. Формат выходных данных В первой строке входного файла f.out следует записать число M - количество векторов в полученной системе (1 ≤ M ≤ N). В каждой из следующих M строк через пробел должны находиться четыре числа, обозначающие координаты начала и конца каждого из векторов соответственно. Все координаты - вещественные числа, записанные с 6 цифрами после точки. Примеры
РешениеТесты и проверяющая программаБудем исходить из физического смысла задачи. Если интерпретировать заданные векторы как силы, приложенные к твердому телу, то ответом должен быть минимальный набор сил, действующий на тело так же, как исходная система. При этом не должна измениться векторная сумма всех сил (это равнодействующая сил) и суммарный момент сил относительно произвольно выбранной точки (например, начала координат).
Получаем следующий способ решения задачи. Фиксируем произвольную точку O и для заданных векторов считаем их сумму и суммарный момент M относительно точки O. Если сумма векторов отлична от нуля, ответом будет вектор v, равный этой сумме. Линия действия этого вектора подбирается таким образом, чтобы момент вектора v относительно точки O был равен M. Один из способов найти начало A вектора v - из двух условий: ( Здесь Если сумма векторов равна нулю, а M ≠ 0, одним вектором в ответе, очевидно, обойтись нельзя. В этом случае достаточно отыскать пару противоположно направленных векторов одинаковой (например, единичной) длины, каждый из которых имеет момент M / 2 относительно точки O. Наконец, если и сумма векторов, и их суммарный момент нулевые, ответом будет нуль-вектор, приложенный к любой точке плоскости. Дадим обоснование этого способа решения. Утверждение 1. Всякий вектор Для этого нужно на прямой АВ породить два вектора Утверждение 2. Элементарные операции сохраняют сумму векторов и момент системы относительно любой точки O. Это утверждение очевидно для суммы векторов. Для моментов это свойство линейности: [ Утверждение 3. Любая конечная система векторов эквивалентна одному вектору или векторной паре.
Из Утверждений 2 и 3 вытекает, что тип ответа (нуль-вектор, вектор или векторная пара) однозначно определяется суммарными вектором и моментом исходной системы. Остается показать, что любой ответ, для которого эти величины "правильные", может быть получен из исходной системы посредством элементарных преобразований. Рассмотрим разные типы ответа. Нуль-вектор, он и в Африке нуль-вектор (Утверждение 1). Второй случай: ответом является один ненулевой вектор v = Утверждение 4. Две векторные пары, имеющие одинаковые моменты, эквивалентны.
Если же все векторы u, u', v и v' параллельны, то сначала переведем указанным способом пару u, u' в любую пару, ей не параллельную, а затем из этой вспомогательной пары получим пару v, v'. Итак, в приведенной задаче сразу можно было выписать ответ, исходя из простых физических соображений. Конечно, задачу можно решать и "в лоб", применяя цепочку элементарных преобразований. Порядок сокращения при этом не важен. Этот способ по сути описан при доказательстве утверждения 3. Участники олимпиады, решившие задачу на полный балл, поступали именно таким образом. Но и при таком решении полезно понимать физическую подоплеку задачи, это поможет найти правильный путь к цели.
Страница: << 3 4 5 6 7 8 9 [Всего задач: 44] |
© 2004-...
МЦНМО
(о копирайте)
|
Пишите нам
|
![]() |