Вычислительная геометрия

29 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Давным-давно большинство персональных компьютеров были оборудованы видеокартами, работавшими только в текстовом режиме. Если программист хотел изобразить картинку на экране, ему приходилось использовать псевдографику или ASCII-графику. Вот пример картинки, нарисованный с ее помощью:
^..^
(OO)
/  \
()()
Вам дан многоугольник, нарисованный с помощью ASCII-графики. Ваша задача состоит в том, чтобы посчитать количество его сторон.
Картинка состоит из символов ‘.’, ‘\’ и ‘/’. Каждый символ изображает единичный квадрат картинки. Символ ‘.’ обозначает пустой квадрат, символ ‘/’ — квадрат с отрезком из левого нижнего угла в правый верхний, а символ ‘\’ — квадрат с отрезком из левого верхнего угла в правый нижний.


Входные данные
Первая строка входных данных содержит два числа h и w — высота и ширина изображения (2 ? h, w ? 100). Следующие h строк, по w символов в каждой, содержат описание многоугольника, нарисованного с помощью ASCII-графики.
Гарантируется, что картинка содержит ровно один многоугольник, не имеющий самопересечений и самокасаний.

Выходные данные
Выведите одно число — количество сторон многоугольника.
Примеры
Входные данные Выходные данные
1 4 4
/\/\
\../
.\.\
..\/
8
Из шахматной доски по границам клеток выпилили связную (не распадающуюся на части) фигуру без дыр. Требуется определить ее периметр.

Входные данные
Сначала вводится число N (1 ≤ N ≤ 64) – количество выпиленных клеток. В следующих N строках вводятся координаты выпиленных клеток, разделенные пробелом (номер строки и столбца – числа от 1 до 8). Каждая выпиленная клетка указывается один раз.

Выходные данные
Выведите одно число – периметр выпиленной фигуры (сторона клетки равна единице).
Примеры
Входные данные Выходные данные Пояснения
1 3
1 1
1 2
2 1
8 Вырезан уголок из трех клеток. Сумма длин его сторон равна 8.
2 1
8 8
4 Вырезана одна клетка. Ее периметр равен 4.
На плоскости даны N точек. Вам требуется построить выпуклую оболочку данного множества точек. Выведите два числа: периметр и площадь.

Входные данные
Первая строка содержит количество точек N, 1≤N≤10000. Каждая из последующих N строк содержит два целых числа – координаты xi и yi. Все числа по модулю не превосходят 104.

Выходные данные
Вывести два числа: периметр и площадь выпуклой оболочки.
 
Ввод Вывод
4
0 0
3 4
3 1
6 0
16.0000000000
12.0000000000
Однажды на огород к Ивану Петровичу (сыну Деда Мороза и Снегурочки) забежало целых три оленя. Известно, что олени — весьма агрессивное нечто, особенно когда речь идет о борьбе за вкусную зелень. Поэтому каждый из трех оленей, заметив других козлов, замер на месте и начал наблюдать за оставшимися оленями: одним глазом за одним оленем, другим — за оленем номер 2. Естественно, для этого оленю нужно “косить” глазами.
Определите наибольший угол, на который пришлось “раскосить” глазами этим странным животным. Причём тут Иван Петрович и мы, и как олени “раскосили” глаза, мы в душе не знаем. Своего дилера мы не сдадим.
Программа получает на вход координаты трех точек, в которых стоят олени (сначала координаты первого оленя, затем — второго и третьего). Координаты — пара целых чисел, не превосходящих 104 по модулю.
 
Ввод Вывод
0 0 3 0 0 4 90.000000
(с) Манаев И., Кашукова М., 2018 г.
В канун Нового Года радостный Шурик решил отправиться в ближайший торговый центр, чтобы купить подарки для своих друзей. Хороший морозный вечер, снегопад из крупных снежных хлопьев, яркие новогодние огни и приятная предпраздничная суета. Казалось бы, что может испортить этот день?

Но вдруг Шурик заметил подозрительный черный джип, ехавший по прямой, характеризующейся уравнением y=kx + b. Затем в точке М(x;y) джип остановился, и из него вышел крепкий юноша азиатского происхождения с черным чемоданом, предположительно бомбой. Он двигался по прямой, также проходящей через точку М и перпендикулярной прямой, характеризующей движение машины.

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

Входные данные
В первой строке записаны вещественные числа k (0.1<k<10)
 и b (-20<b<20, b!=0)
Во второй строке записаны два целых числа: x и y (1<x,y<20) – координаты точки М.
Выходные данные
Нужно вывести одно число – площадь четырехугольника с точностью до двух знаков после запятой.
Пример
Ввод: 
2 1
1 3
Вывод:
11.00

Примечание:

(с) Курбатов Егор 9и
Джон aka xXx_1337_7R1k$#073R_xXx учится великому искусству стрельбы без прицеливания. Он уже освоил несколько простых выстрелов, и сейчас он учится одному из самых основных - так называемому noscope 360. Это достаточно трудно, но у него наконец-то начало получаться, и теперь он хочет узнать, поразил ли он цель своим выстрелом (который мы представим в виде луча).
 
Входные данные
В первой строке вводятся 2 числа X0 и Y0 - координаты точки, в которой стоит Джон (-10 <= X0, Y0 <= 10).
Во второй строке вводятся 2 числа vX и vY - координаты вектора, по которому направлен луч (-10 <= vX, vY <= 10).
В третьей строке вводятся 2 числа X и Y - координаты цели (-50 <= X, Y <= 50).
 
Выходные данные
Выведите слово "Yes", если Джону удалось попасть, и "No" в противном случае.
 
Примеры
Входные данные Выходные данные
1
1 1
-1 1
-2 3
No
Недавно Венцеслав прочитал новую книгу по пикапу, и теперь он хочет опробовать свои знания в парке. Для простоты представим парк в виде набора тропинок, которые являются отрезками на плоскости. Венцеслав уже гулял в этом парке, и знает, какая девушка по какой тропинке гуляет. Проблема в том, что Венцеслав очень ленивый, и гуляет только по одной тропинке. А ещё ему лень узнать, каких девушек он может встретить по пути, и поэтому он попросил Вас, своего лучшего друга, помочь ему в этом непростом деле.
 
Входные данные
В первой строке вводятся координаты концов тропинки (X1, Y1) и (X2, Y2), по которой гуляет Венцеслав (\(-20 <= X1, Y1, X2, Y2 <= 20\)).
Во второй строке вводится целое число N - количество тропинок, по которым гуляют девушки (\(0  <= N <= 5\)).
В последующих N строках вводятся координаты концов тропинок, по которым гуляют девушки (Xi1, Yi1) и (Xi2, Yi2), по i-ой тропинке гуляет i-ая девушка (\(-20 <= X_{i1}, Y_{i1}, X_{i2}, Y_{i2}  <= 20\))
Координаты концов тропинок - вещественные числа.
 
Выходные данные
В первой строке выведите число M - количество девушек, пути которых пересекутся с путём Венцеслава (касание путей считается пересечением).
Во второй строке выведите M чисел - номера девушек, с которыми встретится наш герой. Девушки нумеруются с единицы!
 
Примеры
Входные данные Выходные данные
1
0 0 2 2
1
0 2 2 0
1
1

 

21752#21752
Как задается положение окружности на плоскости

1. координатами радиуса
2. координатами центра и длиной радиуса
3. длиной радиуса и его координатами
4. координатами диаметра и его длиной
Поделиться
Класснуть