

头一次遇到高维前缀和的题目 所以赛时不太会写。
\(n\cdot Mx\cdot log\)的暴力做法这里不再赘述。
容易想到随机一个数字 然后其有\(\frac{1}{2}\)的概率在答案的集合中。
如果在答案集合中枚举这个数字的所有因子那么其中的一个就是答案 判定是这个因子的倍数的个数有多少个即可。
随机k次错误的概率为\(\frac{1}{2^k}\)所以正确性还是很稳的。
考虑如何进行判定 可以将所有数字和当前数字取gcd 然后gcd的那个数字的所有因数都可以加1.
利用高维前缀和 把p当做维度做就行了。
code bf:
//#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
code sol:
//#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include