传送门 直接双向搜索出两边可行解,然后把两边的可行解合并起来得出答案就行了。 注意合并的时候可以利用排序和单调性优化时间复杂度。 直接枚举合并是 O ( s i z a ∗ s i z b ) O(siza*sizb) O(siza∗sizb)的。 但排序之后随着 a a a集合中的乘积的增大, b b b集合中的可行个数显然是单调递减的。 这样就可以方便的统计答案了。 代码