Bootstrap

2024.10.24华为(留学生)笔试题解

第一题集装箱堆叠

看注释即可

// 看题目,是最长连续序列的变种。底应该选大的,然后往上堆叠选择次大的(越接近底越好?)
// 后续想一下,像是动态规划?
// 再一想,好像排序后很容易处理

#include <bits/stdc++.h>
#include <functional>
using namespace std;
int main() {
    vector<int> boxs;
    int i, j;
    vector<int> bstack; // 保存的是堆垛的大小
    int tmp;
    while(cin >> tmp) {
        boxs.push_back(tmp);
    }
    sort(boxs.begin(), boxs.end(), less<int>());
    // bstack.emplace_back(vector<int>());
    for(i=0; i<(int)boxs.size(); ++i) {
        // printf("%d ", boxs[i]);
        for(j=0; j< (int)bstack.size(); ++j) {
            if(boxs[i] >= bstack[j]) {
                +&#
;