大概需求是这样的 1 、有 N 个盒子,每个盒子有 50 个针位 2 、有 M 种钻针,每一种钻针数量不定(可以大于 50 ) 3 、同一种钻针需大于 50 才能轮换到其他盒子
给定多种钻针及数量,求使用最少盒子的排放组合?
eg: | 钻针 | 数量 | | ----------- | ----------- | | 1 |5 | | 2 |8 | | 3 |20 | | 5 |44 | | 6 |12 | | 7 |120 | | 8 |10 |
输出 [ [1,1,1,1,1,2,2,2...], [5,5,5,5,5,...] ]
1
xupefei 2023-11-16 22:43:08 +08:00 via iPhone
没看懂,如果一种钻针少于 50 个,那它们必须放在同一个盒子里?
|
3
jiangzm OP 盒子不一定要排满, 最坏的情况就是每一种钻针都是单独的盒子
|
4
xupefei 2023-11-16 22:57:58 +08:00 via iPhone
1. 把每种数量大于 50 的针拿出 50 的倍数出来,放在单独的盒子里。这样做完后每种针的数量必定小于 50 。
2. 问题简化为了 bin packing ,具体可以在 wikipedia 的页面上找一个近似算法实现一下。 |