看到没有人想过dfs的解答,来一个相对比较好理解的dfs版本。注意到n和m数据范围很小(50及以内),组数不超过10组,剪枝一下可以卡过时间。注意到f(i)这个序列是不增序列,并且有 f(i+1) | f(i). 我们的目标是通过dfs搜索每一个位置的数。怎么用dfs搜索构造序列呢?首先先预处理50以内的所有数字的因子,打表记录一下并降序排序所有的因子,在搜索开始前初始化一下因子表。接下来我们用pos表示当前枚举的位置,prev表示上一个元素的数值,sum表示当前已经选择的元素之和。显然,我们的x不能小于n(如果x=n,直接构造n个1)也不能大于n*m(如果x=n*m,直接构造n个m),如果x...