|
0 / 0 / 0
Регистрация: 18.11.2022
Сообщений: 2
|
|||||||||
Найти координаты и максимальный радиус фонтана18.11.2022, 02:19. Показов 541. Ответов 2
Метки нет (Все метки)
Задача на PascalABC, примерно понимаю, а реализовать не могу
Задача 16 Фонтан Имя входного файла: INPUT.TXT Имя выходного файла: OUTPUT.TXT Максимальное время работы на каждом тесте: 10 секунд Администрация одного института решила построить в холле фонтан, По плану администрации, фонтан должен иметь форму круга с максимально возможным радиусом. Дизайнеру сообщили, что холл института имеет вид прямоугольника, размером X×Y метров. Однако когда дизайнер стал выбирать место для фонтана, он столкнулся с серьезной проблемой: в холле института обнаружилось N круглых колонн, снести которые не представляется возможным. Таким образом, у него появилась проблема: где следует поместить фонтан, чтобы он имел максимально возможный радиус и не имел ненулевого по площади пересечения с колоннами. Вам. предстоит помочь ему в решении этой нелегкой задачи. Формат входных данных На первой строке входного файла находятся вещественные числа X и Y, 1 ≤ X, Y ≤ 104. Будем считать, что прямоугольник холла расположен на координатной сетке так, что его углы имеют координаты (0, 0), (X, 0), (X, Y) и (0, Y). На второй строке находится число N (0 ≤ N ≤ 10) - количество колонн. Следующие N строк содержат параметры колонн - i-я строка содержит три вещественных числа Xi, Yi и Ri - координаты центра и радиус i-й колонны ( Ri ≤ Xi ≤ X-Ri , Ri ≤ Yi ≤ Y-Ri для любых i ≠ j ). Все числа во входном файле разделены пробелами. Формат выходных данных Выведите в выходной файл три вещественных числа: XF, YF и RF - координаты центра и радиус фонтана. Фонтан должен быть полностью расположен внутри холла (допускается касание стен) и не иметь ненулевого пересечения ни с одной из колонн (допускается касание). Радиус фонтана должен быть максимален, Разделяйте числа пробелами и/или переводами строки. Если решений несколько, выведите любое из них. Примечание о точности вычислений При проверке результата работы Вашей программы нарушение условий оптимальности и отсутствия пересечения со стенами и колоннами менее чем на 10-2 будет игнорироваться. Примеры
0
|
|||||||||
| 18.11.2022, 02:19 | |
|
Ответы с готовыми решениями:
2
На множестве точек нужно рассчитать координаты центра и радиус круга который бы имел максимальный радиус
|
|
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
|
||
| 18.11.2022, 15:47 | ||
|
я, например, не понимаю, какой алгоритм решения данной задачи
0
|
||
|
0 / 0 / 0
Регистрация: 18.11.2022
Сообщений: 2
|
|
| 23.12.2022, 01:50 [ТС] | |
|
Расскажу, суть задачи заключается в поиске максимального радиуса фонтана в холле, размер холла задает пользователь, и в этом холле так же имеются колонны, количество, размер и положение которых тоже задает пользователь. Возьмем в пример уже приведённый второй пример в задаче, входные данные: размер холла 20 20 т.е. это x и y = 20, квадрат получается, далее следующая строка 4, это 4 колонны, будет N = 4, дальше идет 4 строки, в каждой по 3 числа, то есть параметры каждой колонны. Первая колонна 2 2 2, первые 2 числа это координаты xy, 3 число это радиус, xi = 2, yi = 2, r = 2. И с остальными так же. Представим это в виде координатной плоскости, клетки например. Поле 20 на 20 клеток, расположены колонны, к примеру первая на клетке 2 и 2 от первой координатной точки, т.е. от нуля, слева сверху получается и остальные колоны, по итогу второго примера у нас получается что 4 колонны находятся по углам нашего поля, т.е. холла. Радиус каждой колонны 2, то есть диаметр 4, одна колонна занимает 4 клетки по x и y, касается стен холла. Наша задача вычислить какой фонтан мы вместим в свободную часть всего вместе взятого, допускается касание стен холла и колонн. Пример хорош тем, что все размеры одинаковы и колонны одинаково стоят по углам, тем самым в выходных данных фонтан имеется положение 10 10, т.е. центр холла на 10 клетке по x и y, а его радиус 9.3 (диаметр 18.6) потому что если мы проведем круг от середины холла, заметим, что фонтан не коснулся стен колла, он уперся в края колонн, от того и радиус не 10. Теоретически мы разобрались и задаче и ее смысле, в программе мы можем сделать ввод с клавиатуры всех данных, пользователь вводит XY холла и N колонн, присваиваем значения к переменным, далее сделаем массив в цикле, массивы к примеру Xm, Ym, Ym от 0 до 3, то есть 3 параметра задает пользователь, цикл например for который повторяется N раз, и выходит что, исходя из того же примера выше пользователь введет 4 раза по 3 параметра для каждой колонны Xm[i] Ym[i] Rm[i]. Все, размер холла X Y есть, количество колонн N есть, параметры для каждой колонны X[i] Y[i] R[i] есть. Далее и заключается задача, выполнение в том, что нам нужно определить, даже не касаясь программы, просто геометрически, если нам даны все эти данные, какого радиуса выйдет фонтан, каков будет его центр на плоскости и радиус, и тут я уже не знаю как решить. Есть варианты, что можем вычесть колонны из холла, тем самым уменьшим стороны холла, но оставим его пустым, далее уже определяем фонтан, может не так, я в этом путаюсь и не могу прийти к решению, в вот после нахождения решения, уже реализовать это в программе.
0
|
|
| 23.12.2022, 01:50 | |
|
Помогаю со студенческими работами здесь
3
Найти координаты центра и радиус сферы Найти координаты центра и радиус сфер Окружность, вписанная в многоугольник (найти координаты центра и радиус) Окружность Фейербаха. Найти радиус и определить координаты центра Составить уравнение плоскости и найти координаты центра и радиус окружности Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|