---> 144 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 11 12 13 14 15 16 17 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Дано \(N\) точек на плоскости, их надо покрасить в черный и белый цвета.

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

Требуется посчитать количество раскрасок, удовлетворяющих этим условиям.

Входные данные

В первой строке задано число \(2 \leq N \leq 300\). В следующих \(N\) строках заданы координаты точек.

Выходные данные

Выведите единственное число - количество различных раскрасок.

Примеры
Входные данные
4
0 0
1 0
1 1
0 1
Выходные данные
12
Входные данные
3
0 0
0 1
0 2
Выходные данные
4
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

В саду Бена расположено n ульев. Некоторые из них соединены друг с другом или с домом Бена прямыми дорожками. Бен гуляет только по дорожкам, переходя с одной на другую только возле очередного улья. Ни дом Бена, ни какой-либо улей не расположены на дорожке, соединяющей другие два улья. Дорожки организованы таким образом, что Бен может дойти от дома до любого улья только единственным способом.

Каждую неделю Бен делает обход ульев. Он начинает от своего дома и идет по дорожкам, посещая каждый улей по крайней мере один раз, минимизируя при этом общий путь. Сын Бена решил помочь своему стареющему отцу и проложить еще одну прямую дорожку между двумя ульями, так чтобы путь Бена от дома через все ульи с возвращением к дому стал как можно короче. Она, как и старые дорожки, проходить мимо дома или другого улья не должна.

Входные данные

На вход сначала подается число n — количество ульев (\(1 \leq n \leq 200\)).

Введем координаты так, что дом Бена будет располагаться в точке (0, 0). В следующих \(n\) строках входных данных записаны координаты ульев в саду Бена. Они не превосходят \(10000\) по абсолютному значению. Никакие два улья не совпадают, и нет ульев, расположенных в точке (0, 0). Будем считать, что они пронумерованы от \(1\) до \(n\).

Следующие \(n\) строк описывают дорожки — каждая дорожка описывается номерами объектов, которые она соединяет. Дом Бена имеет номер 0.

Выходные данные

Выведите два числа — номера объектов, которые надо соединить дополнительной дорожкой. Если требуемой прямой дорожки, сокращающей общий путь Бена не существует, то выведите –1.

Примеры
Входные данные
3
1 0
1 1
0 1
0 2
1 2
1 3
Выходные данные
0 3

На плоскости задано N векторов. Есть 3 правила:

1) вектора на непересекающихся прямых можно сложить

2)  вектора на одной прямой можно сложить (результат исходит из начала одного из векторов)

3) в любой точке можно породить два одинаковых по длине, но разнонаправленных вектора

Требуется найти эквивалентную данной систему, содержащую минимальное количество векторов.

На плоскости задано N векторов – направленных отрезков, для каждого из которых известны координаты начала и конца (вектор, у которого начало и конец совпадают, называется нуль-вектором, можно считать, что нуль-вектор лежит на любой прямой, которая через него проходит). Введем следующие три операции над направленными отрезками на плоскости:

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

2) Направленные отрезки, лежащие на одной прямой, также можно заменить на их сумму. Для этого один из отрезков (любой) нужно перенести в начало второго из них и сложить по правилу сложения векторов на прямой:

Это правило применимо и в случае, когда один из векторов, или даже оба, являются нуль-векторами.

Заметим, что если складываемые векторы противоположно направлены и имеют одну и ту же длину, то результатом их сложения является нуль вектор.

3) В любой точке плоскости можно породить два противоположно направленных отрезка равной (в том числе и нулевой) длины:

Будем говорить, что две системы векторов эквивалентны, если от одной системы можно перейти к другой с помощью конечной последовательности перечисленных выше операций.

Требуется получить любую систему векторов, эквивалентную заданной, состоящую из как можно меньшего числа векторов.

Входные данные

В первой строке входного файла записано число N – количество заданных векторов (1 < N ≤ 1000). В каждой из следующих N строк через пробел записаны четыре числа, обозначающие координаты начала и конца каждого из векторов соответственно. Все координаты – целые числа, по модулю не превосходящие 1000.

Выходные данные

В первой строке входного файла следует записать число M – количество векторов в полученной системе (1 ≤ MN). В каждой из следующих M строк через пробел должны находиться четыре числа, обозначающие координаты начала и конца каждого из векторов соответственно. Все координаты – вещественные числа, записанные с 6 цифрами после точки.

Примеры
Входные данные
3
1 1 1 3
3 3 3 1
5 1 7 1

Выходные данные
1
3.000000 3.000000 5.000000 3.000000
Входные данные
2
2 4 5 10
-2 -4 -5 -10
Выходные данные
1
2.000000 4.000000 2.000000 4.000000
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Найти закопанный пиратами клад просто: всё, что для этого нужно – это карта. Как известно, пираты обычно рисуют карты от руки и описывают алгоритм нахождения клада так: «Встаньте около одинокой пальмы. Пройдите тридцать шагов в сторону леса, потом семнадцать шагов в сторону озера, …, наконец десять шагов в сторону большого булыжника. Клад находится под ним». Большая часть таких указаний просто сводится к прохождению какого-то количества шагов в одном из восьми направлений (1 – север, 2 – северо-восток, 3 – восток, 4 – юго-восток, 5 – юг, 6 – юго-запад, 7 – запад, 8 – северо-запад) (см. рис). Длина шага в любом направлении равна 1.

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


 

Вам необходимо написать программу, которая по указаниям пиратов определяет точку, где зарыт клад.

Входные данные

Первая строка входного файла содержит число N – число указаний (1≤N≤40). Последующие N строк содержат сами указания – номер направления (целое число от 1 до 8) и количество шагов (целое число от 1 до 1000). Числа разделены пробелами.

Выходные данные

В выходной файл выведите координаты X и Y точки (два вещественных числа, разделённые пробелом), где зарыт клад, считая, что ось Ox направлена на восток, а ось Oy – на север. В начале кладоискатель должен стоять в начале координат. Координаты необходимо вывести с погрешностью не более 10-3.

Примеры
Входные данные
6
1 3
3 1
1 1
3 3
5 2
7 1
Выходные данные
3.000 2.000
Входные данные
1
8 10
Выходные данные
-7.071 7.071
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Пользователь просматривает таблицу в Internet Explorer и пользуется для прокрутки изображения колесиком на мышке. При этом все изображение сдвигается вверх или вниз на T пикселов. Пользователю очень не нравится, когда курсор мыши оказывается на горизонтальных линиях, разделяющих строки таблицы. Поэтому он хочет выбрать такое положение для курсора мыши на экране, чтобы в процессе прокрутки до конца таблицы курсор как можно меньшее число раз пересекался с линиями таблицы.

При этом если в каком-то положении курсор оказывается на двух линиях таблицы, то это считается за два пересечения курсора с линиями таблицы. Если какую-то линию курсор мыши пересекает в двух положениях (то есть, например, высота курсора 10 пикселей, а при прокрутке таблица сдвигается на 7 пикселей, тогда курсор мыши может оказываться на одной линии в двух состояниях прокрутки), то это также считается за два пересечения.

Экран монитора имеет разрешение по вертикали U пикселей. Координаты введены так, что самые верхние точки экрана имеют координату 0, а нижние — координату U–1.

Курсор мыши имеет высоту H пикселов. Расположением курсора считается самая верхняя точка курсора. Таким образом, если мы говорим, что он расположен, например, в точке с координатами 0 на экране, то его изображение расположено в точках с координатами от 0 до H–1. Курсор мыши всегда целиком помещается на экране, то есть допустимыми координатами для его расположения являются координаты от 0 до UH.>

Таблица, которую просматривает пользователь, имеет высоту L пикселов и состоит из N­–1 строки, и, следовательно, в ней N горизонтальных линий, которые имеют координаты X1, X2, …, XN. При этом 0=X1<X2<X3<…<XN=L–1.

В начальный момент времени таблица расположена так, что линия, имеющая координату 0 в таблице отображается в 0-й строке пикселов монитора. Далее при прокрутке таблица каждый раз сдвигается на T пикселов (то есть в 0-й строке монитора оказывается строка пикселов, имеющая в таблице координату T, координату 2T и т.д.). Так происходит до тех пор, пока на экране не окажется нижняя линия таблицы (которая имеет координату XN). После этого дальнейшая прокрутка не происходит (если изначально XN<U, то прокрутка вообще не происходит).

Входные данные

Во входном файле задано сначала разрешение монитора по вертикали U, затем высота курсора мыши H, затем шаг прокрутки T. Далее задана высота таблицы L. Далее задано количество разделительных линий в таблице N, и координаты X1, X2,…,XN, где расположены эти линии относительно начала таблицы.

Ограничения

  • 10U512
  • 1HU
  • 1TU
  • 2N200000
  • 0=X1<X2<…<XN=L–1109.
Выходные данные

В выходной файл выведите сначала координату, в которой нужно расположить курсор мыши, а затем количество пересечений курсора мыши с линиями таблицы. В случае, если существует несколько начальных положений курсора мыши, выведите любое из них.

Примеры
Входные данные
10 3 10 10
4
0 2 6 9
Выходные данные
3 0
Входные данные
10 3 10 20
14
0 1 2 3 4 5 6 7 8 9 10 12 16 19
Выходные данные
3 3

Страница: << 11 12 13 14 15 16 17 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест