Tonia 现在想知道:她可以用所有立方体建造的最高塔是什么? 找到最大的 X,这样 Tonia 可以使用她的N个立方体来建造一个有 X 行立方体的塔。然后,找到一种建造这样一座塔的方法。换句话说,确定塔的 X 行中每一行的立方体数量。 返回带有 X 个元素的 a:对于塔的每一行,从上到下,Tonia 应该在该行中使用的立方体数量。
A 的元素是段的长度,切割将长度 sum(A) 的边分成这些段。类似地,B 的元素是矩形另一边被分割成的线段的长度。因此,A 和 B 是通过将大矩形切成块而产生的较小矩形的边长。
思路
对每一个pair插入到set中,求set到size()即可。
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
classSmallRectangles { public: longlongcount(std::vector<int> Aprefix, std::vector<int> Bprefix, int AL, int BL, int AM, int BM, int seed); };
longlongSmallRectangles::count(std::vector<int> Aprefix, std::vector<int> Bprefix, int AL, int BL, int AM, int BM, int seed){ std::map<std::pair<int, int>, longlong> cnt; for (int i = 0; i < AL; i++) { for (int j = 0; j < BL; j++) { int a = std::min(Aprefix[i], Bprefix[j]); int b = std::max(Aprefix[i], Bprefix[j]); cnt[{a, b}]++; } } longlong ans = cnt.size(); return ans; }