Сергей Сергей, Если данные округлены - то вы никак не можете знать уже. Если данные просто выводятся округленные, а в таблице есть более точное значение, ну так домножте все числа на 10^7 и возьмите знаменатели 10^9. Но если они действительно округлены, то вы уже никак знать не можете. Может там 1e-7 прибавляется - и тогда внезапно знаменатель никак не сократить и НОК будет все 10^9.
marshmallow, Alexandroppolus,
Динамическое программирование позволило бы быстрее подсчитать сколько таких множеств есть или проверить, а есть ли они вообще. Раз в задаче надо их сами вывести, то задача решается только полным перебором. С помощью ДП его можно ускорить, но не во всех случаях, поэтому заморачиваться смысла нет.
Сумма внешних углов может быть больше 360. У квадрата там 1080
Вот те углы между векторми сторон, которые в сумме дают 360, вот они у такого угла в 0 градусов будут 180. Еще досаточно остается для второго такого же угла.
Проблема тут не в углах, ведь вполне можно представить себе 2-угольник из двух совпадающих сторон, а в определении. Просто тупо накладывающиеся друг на друга стороны противоречат определению многоугольника. Потому что это бесполезная конструкция. Внутренности у нее нет, только граница.
soja, ну раз на стурктуру преподаватель не ругался, то вроде правильно. Хотя правила и требования у каждого преподавателя свои. Может вашему надо, чтобы стрелочки везде были. Или цвета надо особые делать у разных типов блоков.
Артём Сединин, @nagayev
Ну тут не надо dfs вообще. Зачем стек наматывать, если можно просто циклом пройтись, если помнить соседнюю вершину.
p = trunk_base # вершина из которой растет черенок
v = <next vertex> # соседняя вершина к p вдоль цикла
while power[v] != 3:
for n in G[v]:
if n != p:
v = n
p = v
break
Аналогично можно пройтись по всем вершинам в черенке.
Марат Нагаев Дайте уж лучше ссылку на условие. Пока ничего не понятно. Как считаются награды? Собрать все? Или они численные и суммируются? Какие ограничения? Сколько вершин, сколько ребер сколько наград, ребра все одинаковой длины или разной? Есть ли отрицательные ребра в графе? Граф вообще ориентированный или нет? Может он дерево? Что важнее: кратчайший путь из A в конец, или собрать все награды? Ведь ради наград придется делать крюки и удлинять путь.
Разные ответы на эти вопросы делают задачу принципиально разной. Где-то сработает дейкстра, где-то может сработать динамическое программирование, а где-то только полный перебор или какая-то дичь вроде метода отжига.
Ketchuuuup, не обязательно даже виртуальные методы.
Просто класс наследник должен переопределять метод. Если при этом хотите его как указатель на родительский класс использовать, то да, придется использовать виртуальные методы.
И вы вообще уверены, что у вас ваш пример работает. Запускать пробовали?
mboze, Я вам уже ответил - выводите массив A (кроме пересечения) и выводите массив B. Два последовательных, не связанных цикла.
В первой части - вы же можете выводить пересечение? Вот вам надо поменять условие, чтобы выводились не элементы из пересечения, а элементы из не пересечения.
> форк - форк процесса, имеет его память и дескрипторы, сильно экономит память, есть еще префорк когда создается сильно до и запускается только в момент необходимости
Это все-таки отдельный процесс со своей памятью и дискрипторами. Хоть он и шарит память с основным, но все эти страницы будут copy-on-write.
Да, тут отличие от всяких CreateProcess в винде в том, что состояние запущенного процесса в момент форка такое же, как у родительского - вроде те же значения переменных, те же дискрипторы будут скопированы. Но оно все не связанно. Один из процессов может закрыть дескриптор - у остальнрых они останутся открыты. Изменения переменных не видны в других процессах.