Как правильно рассчетать общую площадь нескольких прямоугольников разного размера?
посчитать каждый потом сложить.
Зависит от того, пересекаются ли эти прямоугольники или нет. Если же ко всему прочему эти прямоугольники произвольно "ориентированы" на плоскости, то задача усложняется еще больше.
В целом алгоритм простой:
1) Находим сумму площадей прямоугольников (S0)
2) Находим сумму площадей попарных пересечений прямоугольников (S1)
3) Находим сумму площадей попарных пересечений фигур из п. 2 (S2) и т. д.
Ответом будет сумма: S0 - S1 + S2 - S3 + .
Либо можно поступить просто. Если прямоугольники расположены достаточно "компактно", то можно найти вмещающий их прямоугольник, в нем случайным образом накидать N точек, из этого множества выделить n точек, попавших внутрь какого-нибудь из интересующих нас прямоугольников, и полученное отношение n/N даст оценку площади (метод Монте-Карло).
Либо можно избавиться от вероятностного характера оценки из предыдущего пункта, введя на вмещающем прямоугольнике дискретную двумерную сетку с шагом h, и подсчитав количество узлов сетки, попавших внутрь рассматриваемых прямоугольников. Но вычислительная сложность этого алгоритма будет O((1/h)^2).
Как рассчитать стоимость покупок, если цены и вес разные?