C++ 代码以查找容器中盒子占用面积


假设我们有 n 对需要装入正方形集装箱中的盒子。一对盒子的宽度表示为一对 (a, b),它们在一个数组“尺寸”中给出。如果我们使盒子宽度彼此平行,我们必须找出盒子在集装箱中占据多少面积。我们不能将盒子堆叠在一起。我们确定所有 n 对中两个盒子在集装箱中所需的最小面积。

因此,如果输入为 n = 4,dimensions = {{2, 4}, {3, 6}, {2, 5}, {4, 6}},则输出为 -

64
25
36
16

步骤

为了解决这个问题,我们将按照以下步骤操作 -

res := 0
while n is non-zero, do:
   a := first value of dimensions[n]
   b := second value of dimensions[n]
   res := maximum of (2 * minimum of (a, b) and maximum of a and b)
   print(res * res)
   n := n - 1

示例

让我们看一下以下实施,以获得更好的理解 -

#include <bits/stdc++.h>
using namespace std;
#define N 100
void solve(int n, vector<pair<int, int>> dimensions) {
   int res = 0;
   while(n--){
      int a = dimensions[n].first;
      int b = dimensions[n].second;
      int res = max(2 * min(a, b), max(a, b));
      cout<< res * res << endl;
   }
}
int main() {
   int n = 4;
   vector<pair<int, int>> dimensions = {{2, 4}, {3, 6}, {2, 5}, {4, 6}};
   solve(n, dimensions);
   return 0;
}

输入

4, {{2, 4}, {3, 6}, {2, 5}, {4, 6}}

输出

64
25
36
16

更新于: 11-Mar-2022

152 次浏览

开启你的 职业生涯

通过完成课程获取认证

开始
广告