jzoj5999

题意

给定(n)个数字(a_i)(s),要求无序选择(k)个,(b_1oplus b_2oplus ...oplus b_k=s)(a_ile 5 imes 10^4,nle 10^6,kle 4)

做法

(g_i)为gcd为(i)的方案数
(ans=sumlimits_{i=1}^V ig_i)
(f_i)为gcd为(i)的倍数的方案数
(ans=sumlimits_{i=1}^V phi(i)f_i)

可以钦定一个阀值(m)
(ile m)时有效值较多,fwt,较小时折半暴力
有些细节,容斥一下

(O(mVlogV),O(sumlimits_{i=m+1}^V (frac{V}{i})^2))
积分一下,可以求出(m)大概取(50)最优

原文地址:https://www.cnblogs.com/Grice/p/12976235.html