看了取值和数组大小,是可以用01背包做的。讲的人比较少,那我把自己的ac代码分享一下。 思路: 1)考虑把3和5的倍数分别求和(sum_3和sum_5)之后,剩下部分的元素(arro)求和(sum_left)// 时间复杂度o(n); 剩下的问题是:要从arro中挑选一部分元素出来放入5的数组中,它们的和为x。根据题意可以得到: sum_5+x=sum_3+sum_left-x; == > tar=(sum_3+sum_left-sum_5) / 2;这就是背包问题的目标和 然后解决一些特殊情况(line26-32) 2)转化为0...