一道玄学题... 其实一开始想的是对的,优化一下就好了 首先我们会发现,乘积不能被完全平方数整除等价于所有因子的每个质因子个数和都至多为1 可是500以内的质数很多,全找出来会爆炸的 可我们会发现,如果一个数的平方会在500以内,那么这个数一定<=22! 所以,1~500中会存在的完全平方数的质因子一定在22以内 这些质数只有八个,所以我们可以找出来 至于剩下的部分,显然23和46是不嫩同时出现的,所以我们把含有23这个因子的所有数分到一个背包里,对每个背包只允许使用其中的一个数,这样就能满足2…