LQ0082 货物摆放因子+枚举

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0082 货物摆放因子+枚举相关的知识,希望对你有一定的参考价值。

题目来源:蓝桥杯2021初赛 C++ A组C题

题目描述
小蓝有一个超大的仓库,可以摆放很多货物。
现在,小蓝有n 箱货物要摆放在仓库,每箱货物都是规则的正方体。
小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。
小蓝希望所有的货物最终摆成一个大的立方体。即在长、宽、高的方向上分别堆L、W、H 的货物,满足n = L × W × H。
给定n,请问有多少种堆放货物的方案满足要求。
例如,当n = 4 时,有以下6 种方案:1×1×4、1×2×2、1×4×1、2×1×2、2×2×1、4×1×1。
请问,当n = 2021041820210418 (注意有16 位数字)时,总共有多少种
方案?

提示:建议使用计算机编程解决问题。

问题分析
对于n = 2021041820210418,先求出其所有的因子,再进行枚举计算。
也可以用暴力法进行计算。

AC的C语言程序如下:

/* LQ0082 货物摆放 */

#include <iostream>
#include <set>

using namespace std;

const long long N = 2021041820210418;

int main()

    set<long long> s;
    for (long long i = 1; i * i <= N; i++)
        if (N % i == 0) 
            s.insert(i);
            s.insert(N / i);
        

    int cnt = 0;
    for (auto i:s)
        for (auto j:s)
            for (auto k:s)
                if (i * j * k == N)
                    cnt++;

    cout << cnt << endl;

    return 0;

以上是关于LQ0082 货物摆放因子+枚举的主要内容,如果未能解决你的问题,请参考以下文章

货物摆放问题

货物摆放问题

分解质因数算法案例——仓库货物摆放(蓝桥杯)

蓝桥杯货物摆放思路分析

蓝桥杯货物摆放思路分析

蓝桥杯货物摆放思路分析