ЗАДАЧИ
problems.ru |
О проекте
|
Об авторах
|
Справочник
Каталог по темам | по источникам | |
|
|
|||||||||||||||||||||||||||||||||||||||||||||||
Версия для печати
Убрать все задачи Из заданных n предметов выбрать такие , чтобы их суммарный вес был менее 30 кг, а стоимость - наибольшей. Напечатать суммарную стоимость выбранных предметов. Точнее- заданы два массива положительных чисел А[1:n] и В[1:n]. Выбрать такие попарно различные числа i1, i2,... ik, чтобы сумма
Замечание. Можно предполагать , что предметы уже расположены в порядке возрастания или убывания веса А[i], стоимости В[i], цены В[i] / A[i] или какого-либо иного признака. Решение |
Страница: << 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 цифрами после точки. Примеры
Страница: << 3 4 5 6 7 8 9 [Всего задач: 44] |
© 2004-...
МЦНМО
(о копирайте)
|
Пишите нам
|