当前位置: 首页 > news >正文

蓝桥杯-货物摆放

蓝桥杯-货物摆放

  • 1、题目描述
    • 1.1 答案提交
    • 1.2 运行限制
  • 2、解决方案
    • 2.1 方案一:暴力解法(三重循环)
    • 2.2 方案二:找出乘机的因子

1、题目描述

  小蓝有一个超大的仓库,可以摆放很多货物。

  现在,小蓝有 n 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。

  小蓝希望所有的货物最终摆成一个大的长方体。即在长、宽、高的方向上分别堆 LWH 的货物,满足n=L×W×H

  给定 n,请问有多少种堆放货物的方案满足要求。

  例如,当 n=4 时,有以下 66 种方案:1×1×4、1×2×2、1×4×1、2×1×2、2×2×1、4×1×1、1×1×4、1×2×2、1×4×1、2×1×2、2×2×1、4×1×1。

  请问,当 n=2021041820210418 (注意有 1616 位数字)时,总共有多少种方案?

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

1.1 答案提交

  这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

1.2 运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

2、解决方案

2.1 方案一:暴力解法(三重循环)

long num = 2021041820210418l;int count = 0;for ( long i = 1 ; i < num ; i++ ){for ( long j = 1 ; j < num ; j++ ){for ( long k = 1 ; k < num ; k++ ){if ( i * j *um ){count++;}}}}

   这个明显超时了

2.2 方案二:找出乘机的因子

  我们先找出能够被num整除的所有因子,找到这些因子之后,由于是三个因子相乘的积等于num,由于因子的数量比num小太多了,此时对所有因子进行三重循环统计三个因子乘积=num的数量即可。

package LanQiaoBei.货物摆放;import java.util.HashSet;public class Main {//直接三重循环时间复杂度非常大,另辟蹊径public static void main(String[] args) {long num = 2021041820210418L;//用HashSet存放num因子,自动解决因子重复问题HashSet<Long> common = new HashSet<>();//遍历到num的平方根技术,不需要都遍历一遍for (long i = 1; i <= Math.sqrt(num); i++) {if (num % i == 0) {common.add(i);//可以整除就加入集合//i可以被整除,求出num的另外一个除数long n = num / i;if (n != i) {   //不加判断也行,因为我们用的hashset,但是系统判定超时common.add(n);}}}System.out.println("common.size():" + common.size());System.out.println(common);long count = 0;//这里不需要三重循环,前两个数确定后,第三个数也就确定了for (Long i : common) {for (Long j : common) {long k = num / (i * j);if (i * j * k == num) {count++;}}}System.out.println(count);}}

  运行结果如下图:

image-20230225204532864

http://www.lryc.cn/news/26756.html

相关文章:

  • 10 种顶流聚类算法 Python 实现(附完整代码)
  • 微信小程序第一节 —— 自定义顶部、底部导航栏以及获取胶囊体位置信息。
  • 快速吃透π型滤波电路-LC-RC滤波器
  • 聊聊混沌工程
  • 做为骨干网络的分类模型的预训代码安装配置简单记录
  • 网络协议(九):应用层(域名、DNS、DHCP)
  • 有趣的小知识(三)提升网站速度的秘诀:掌握缓存基础,让你的网站秒开
  • SpringCloud之服务拆分和实现远程调用案例
  • mybatis: Invalid bound statement (not found): com.atguigu.dao.UserDao.save
  • JavaScript 代码规范
  • 6综合项目 旅游网 【6.我的收藏和收藏排行榜】
  • openpnp - error - 微调mark点坐标后,更新板子其他原件其他坐标报错的变通方法
  • 借助ChatGPT爆火,股价暴涨又暴跌后,C3.ai仍面临巨大风险
  • 蓝桥杯-数位排序
  • 【ES实战】ES 插件包离线安装(本地文件)
  • Spring的核心基础——IOC与DI
  • C++正则表达式基础
  • 如何在网络安全中使用人工智能并避免受困于此
  • 生态 | 人大金仓与超聚变的多个产品完成兼容认证
  • 4自由度串联机械臂按颜色分拣物品功能的实现
  • 玩转结构体---【C语言】
  • c语言指针怎么理解 第二部分
  • GC简介和监控调优
  • Understanding The Linux Kernel --- Part2 Memory Addressing
  • 前后端分页查询好大的一个坑(已解决)
  • Python批量执行读取ini文件和写入ini文件时,性能比较低怎么办,给出解决方案和源码
  • 微机原理与接口技术 汇编语言程序设计DOS常用命令
  • 4.ffmpeg命令转码规则、过滤器介绍、手动流map选项
  • 【python】标准库详解
  • Golang Map原理(底层结构、查找/新增/删除、扩缩容)