Teste de máquina HUAWEI OD ponto de interrogação real teste unificado apple-2023 OD (papel B)

Descrição do título:

A e B dividem as maçãs em duas pilhas. A espera dividir as maçãs igualmente de acordo com suas regras de cálculo. Suas regras de cálculo são baseadas na adição binária e não planeja mover, 12+5=9 (1100+0101=9). As regras de cálculo de B são adição decimal, incluindo carregamento normal. B espera obter o máximo de maçãs quando A for satisfeito. Satisfazendo relutantemente a solicitação de A, produz -1.

int main() {
    // 接收输入,其实在循环里可以直接计算,但为了代码单一片段单一功能,我放弃了。
    int n;
    vector<int> rVec;
    cin >> n;
    while (n)
    {
        n--;
        int weight;
        cin >> weight;
        rVec.push_back(weight);
    }

    //题目说了苹果重量小于等于10000,先给10001,然后后面只要比他小就保存下来,最终得到最小的那个
    int minWeight = 10001;
    // aWeight bWeight 分别表示按照A 和 B的算法得出的重量。
    int aWeight = 0, bWeight = 0;
    //将所有苹果求和、求异或,并保留最小的重量
    for (auto x : rVec)
    {
        aWeight ^= x;
        bWeight += x;
        minWeight = min(minWeight, x);
    }

 

おすすめ

転載: blog.csdn.net/2301_76848549/article/details/130830700