0 / 0 / 0
Регистрация: 09.01.2025
Сообщений: 4

Египетские пирамиды

10.01.2025, 16:20. Показов 1843. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача B: Египетские пирамиды
Условие задачи (pdf)

Не только майя хотят строить пирамиды. Египтяне занимались этим до того, как это стало мэйнстримом.

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

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

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

Формат входных данных
Первая строка входного файла содержит целое число
— количество многоугольников,
. Следующие
строк описывают
уровней-многоугольников.
–ая строка файла описывает
–ый многоугольник. Первое целое число
— количество вершин многоугольника,
. Последующие
пар чисел — координаты вершин многоугольника в порядке его обхода. Координаты вершин — целые числа, принадлежащие диапазону от
до
.

Формат результата
Выведите единственную строку —
-ое число в ней должно быть равно числу уровней строго под
-м.

Примеры
Входные данные
3
3 -2 1 8 9 12 1
3 7 5 6 3 7 4
4 4 3 7 7 9 3 1 2
Результат работы
0 2 1
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.01.2025, 16:20
Ответы с готовыми решениями:

Вычислить: высоту пирамиды; объем пирамиды; площадь ее полной поверхности
Дана правильная пирамида, в основании которой лежит правильный пятиугольник со стороной a. Все боковые ребра пирамиды равны b. Вычислить:...

По заданным вершинам найти объем пирамиды
Дана задача: Даны 5 точек в трехмерном пространстве, которые являются вершинами пирамиды. Рассчитать объем пирамиды.

Циклической вывод пирамиды
Вот код но его нужно сократить применив цикл фор но как не могу понять помогите print(31 * ' ', str(self.deck1.cards),'...

3
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38171 / 21106 / 4307
Регистрация: 12.02.2012
Сообщений: 34,701
Записей в блоге: 14
10.01.2025, 18:50
Цитата Сообщение от Rusich22 Посмотреть сообщение
Следующие
строк описывают
уровней-многоугольников.
–ая строка файла описывает
–ый многоугольник. Первое целое число
— количество вершин многоугольника,
. Последующие
пар чисел — координаты вершин многоугольника в порядке его обхода. Координаты вершин — целые числа, принадлежащие диапазону от
до
.
- это на каком языке написано?
2
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
10.01.2025, 22:34
Очевидно, что нулевому уровню будет соответствовать самый большой по площади прямоугольник, следующему - поменьше, и т.д.
Т.е. предлагаю создать функцию вычисления площади полигона по координатам, используя
https://ru.m.wikipedia.org/wik... 1%81%D0%B0
Дальше останется только отсортировать полигоны, используя в качестве ключа эту функцию.

Добавлено через 2 часа 49 минут
Если ничего не напутал:
Python
1
2
3
4
5
6
7
8
9
10
11
12
def area(coords):
    coords+=coords[0:2] # Periodic boundary
    a1=sum(i*j for i,j in zip(coords[::2],coords[3::2]))
    a2=sum(i*j for i,j in zip(coords[1::2],coords[2::2]))
    return(abs(a1-a2)) # 2*area
poly_area=[]
n=int(input())
for i in range(n):
    k, *coords=map(int, input().split())
    poly_area.append((area(coords), i))
result=[i[1]  for i in sorted(poly_area, reverse=True)]
print(' '.join(map(str,result)))
0
964 / 485 / 241
Регистрация: 02.06.2016
Сообщений: 760
13.01.2025, 14:44
Цитата Сообщение от u235 Посмотреть сообщение
Очевидно, что нулевому уровню будет соответствовать самый большой по площади прямоугольник
где-то видел эту задачу, там ограничение на модуль координат было 2·109, соответственно, максимальная площадь 16·1018, что укладывается в 64 бита (usingned long long если на c++ писать), но т.к. некоторые площади могут быть полуцелыми, то для "удобного" хранения нужно 65 бит.. и автор предлагал вместо площадей выбрать наименьшую абсциссу от каждого моногоугольника и сортировать по ним, мол, "не пересекаются по периметру" отсекает случаи касания и прочего интересного..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.01.2025, 14:44
Помогаю со студенческими работами здесь

Вывод пирамиды заданной высоты из символов «*»
Выведите пирамиду из символов «*» заданной высоты. Формат ввода Одно целое число — высота пирамиды. Формат вывода Пирамида в...

Найти грань и объем пирамиды в трехмерном пространстве
Задача найти площадь грани АВС и объем пирамиды НА ВСЕ), вершины которой содержатся в точках: А(2; -2; 0), В {5; 3; 2), С(-3; -2; 0),...

Египетские знаки
Прошлым летом школьник Вася побывал в Египте. И лишь сейчас он вспомнил, что во время своей поездки он успел сфотографировать много...

Египетские дроби
египетские дроби надо раписать. Помогите пож.-та

Найти отношение объемов частей пирамиды, полученных сечением пирамиды плоскостью
В правильной четырехугольной пирамиде PABCD с вершиной P проведено сечение через сторону AB и середину PC. В каком отношении сечение делит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru