题目:给出1-N这N个数,问有多少个子集,集合里的lcm是大于等于m的
可以发现m的范围是很大的,而且1-N的子集也是很多的2^N-1个。
觉得会是DP,但是由于数据范围太大,而无从下手。
其实可以发现的是虽然子集很多,但是LCM的值没有那么多,所以可以用map保存i-1个数的时候时的所有lcm值
这样就可以转移了
mapdp[i]。表示i个数,可以有it->second种情况组成it->first。
[cpp]
#include
#include
#include
#include
#include
#include