有个集合(n0...nx)x最多给到8,给出一个最大值X,X为整数不超过20,
尝试 L取值为(1~max(n0...nx)),以及(n0...nx)对应的比值(m0...mx)并且满足sum(m0...mx)值<=X,n0==(n0-(m0*L<=n0)),nx==(nx-(mx*L<=nx),经过多次L和m0的取值,得到n0=0,nx=0。
求尝试取L和(m0...mx)为何值时可得到最佳次数,即就讲尝试取值的次数越少越好。
例如:
(200,400,500,850,740,420) X=6 L
第一次取值 (0, 1, 1, 2, 1, 1) 6 400
(200,0 ,100,50 ,340,20)
第二次取值 (2, 0, 1, 0, 3, 0) 6 100
(0, 0, 0, 50, 40, 20)
第三次取值 (0, 0, 0, 2, 2, 1) 5 20
(0, 0, 0, 10, 0, 0)
第四次取值 (0, 0, 0, 1, 0, 0) 1 10
(0, 0, 0, 0, 0, 0)
经过四次尝试后集合数据清零。
这个是不是最佳没求证,但思路是这样子的,求算法怎么解?
可以试试贪心+搜索 每次选择删除量最大的 选择方法用搜索