Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
174 / 0 / 0
Регистрация: 10.09.2022
Сообщений: 304

Октодерево

19.11.2023, 11:16. Показов 540. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Рассмотрим способ представления трёхмерных кубических сцен, называемый октодеревом:
1) Если сцена целиком одноцветная, то есть является кубом, закрашенным одним цветом, то октодерево состоит из одной листовой вершины – вокселя. Линейная запись такого октодерева состоит из одного символа P: W, R, O, Y, G, C, B, V или D (W – белый, R – красный, O – оранжевый, Y – жёлтый, G – зеленый, C – голубой, B – синий, V – фиолетовый или D – черный).
2) Если в сцене есть фрагменты разного цвета, то она делится на 8 равных кубов (верхний левый ближний, верхний правый ближний, нижний левый ближний, нижний правый ближний, верхний левый дальний, верхний правый дальний, нижний левый дальний, нижний правый дальний) и представляется октодеревом, состоящим из корневой вершины и восьми поддеревьев, которые описывают части сцены – полученные при делении кубы. Пусть TВЛБД – линейная запись верхнего левого ближнего поддерева, TВПБД – линейная запись верхнего правого ближнего поддерева, TНЛБД – линейная запись нижнего левого ближнего поддерева, TНПБД – линейная запись нижнего правого ближнего поддерева, TВЛДД – линейная запись верхнего левого дальнего поддерева, TВПДД – линейная запись верхнего правого дальнего поддерева, TНЛДД – линейная запись нижнего левого дальнего поддерева, TНПДД – линейная запись нижнего правого дальнего поддерева; тогда запись всего дерева будет такой: QTВЛБДTВПБДTНЛБДTНПБДTВЛДДTВПДДTНЛДДTНПД Д
Пример:
линейная запись октодерева: QQDWWWWWWWQWDWWWWWWDDWWWW
октодерево в виде графа сцена, представленная октодеревом (на рисунке сетка дана для пояснения и в состав сцены не входит; серый цвет соответствует белым кубам, записываемым как W, и используется для контраста с фоном; задняя половина куба вся имеет цвет W; спереди внизу находятся целиком чёрные кубы)В линейной записи октодерева все символы идут подряд. Никаких пробельных, разделительных и других символов в линейной записи октодерева не используется.
Составьте программу, на вход которой в первой строке подаётся линейная запись октодерева T (длина записи не превышает 4681 символ) и во второй строке цвет P (W, R, O, Y, G, C, B, V или D). Полагая, что общий объем записанной сцены равен 1, программа находит объем части октодерева T, закрашенной данным цветом P, и выводит его в виде беззнаковой двоичной дроби без незначащих нулей.
Формат входных данных
В первой строке содержится последовательность символов Q, W, R, O, Y, G, C, B, V или D, составленная по правилам линейной записи октодерева. Длина первой строки не превосходит 4681 символ. Во второй строке содержится один символ W, R, O, Y, G, C, B, V или D.
Формат результата
Искомый объём части октодерева записывается беззнаковой двоичной дробью без незначащих нулей (незначащим считается ноль, находящийся в разряде дробной части, начиная со второго, такой, что в части записи дроби справа от него не встречается ни одна 1). В записи вывода всегда присутствует один разряд в целой части и не менее чем один разряд в дробной. Разделителем между целой и дробной частью является точка. Например, нулевое значение записывается так: 0.0 Пример записи, являющейся неверной из-за наличия двух незначащих нулей: 0.000100
Примеры
Входные данные
QQDWWWWWWWQWDWWWWWWDDWWWW
D
Результат работы
0.01001
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.11.2023, 11:16
Ответы с готовыми решениями:

Октодерево
Здравствуйте, Начал использовать в своей программе октодерево, но есть одна проблема не знаю как оптимально найти существование...

Воксельное октодерево
Октодерево — тип древовидной структуры данных, в которой у каждого внутреннего узла есть до восьми потомков. Деревья октантов чаще всего...


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

Или воспользуйтесь поиском по форуму:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru