Найдите высоту круга, видимая площадь которого (не покрытая прямоугольниками) составляет половину общей площади.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Найдите высоту круга, видимая площадь которого (не покрытая прямоугольниками) составляет половину общей площади.

Сообщение Anonymous »

Описание проблемы
Я пытаюсь найти высоту центра круга (H) относительно горизонта (ось X). Солнце представляет собой круг радиусом $R$, а его центр всегда находится в точке (0, H).
Горизонт – это ось x (y = 0). Имеется N небоскребов, представленных в виде прямоугольников. Каждый прямоугольник $i$ определяется его левой координатой x (x_i), шириной (w_i) и высотой (h_i). Прямоугольники расположены на горизонте, что означает, что их диапазон y равен [0, h_i].
Правила видимости:
  • Часть солнца видна, только если она находится над горизонтом (y > 0).
  • Часть солнца не видна, если она закрыта рядом со зданием.
  • Здания не перекрываются, но могут соприкасаться.
Задание:
Определить высоту $H$ центра круга над горизонтом так, чтобы общая видимая площадь составляла ровно половину общей площади Солнца (\pi R^2 / 2).
Ограничения:
  • N: количество небоскребов
  • R: радиус Солнца
  • Здание i охватывает диапазон x [x_i, x_i + w_i] и диапазон y [0, h_i].
  • h_1 и h_n \le R
  • |h_i - h_{i-1}| \le R
  • Координаты x_i и размеры w_i, h_i находятся в диапазоне от -100 до 100.
Пример 1:
Входные данные: 0 42 (0 зданий, радиус 42)
Выходные данные: 0,000000 (Видимая область равна половине, когда центр находится точно на горизонте)
Пример 2:
Ввод:

Код: Выделить всё

3 4
-3 1 1
-2 1 2
0 2 2
Выход: 0,882205282305

Подробнее здесь: https://stackoverflow.com/questions/798 ... s-half-the
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»