A. 比特币
发现对于一个固定的k,将所有数对2^(k+1)取模,第k位为1的数对应的应该是一段连续区间。
那么对于每一个k维护一个数据结构,同时维护全局的增加量,就可以得到应该查询的对应区间。然后直接查询即可。
B. 测试
根据约数个数和的结论,不难得到$d(ijk)=sumlimits_{x|i} sumlimits_{y|j} sumlimits_{z|k} [(i,j)==1] [(i,j)==1] [(j,k)==1]$。
然后对这三个分别进行莫比乌斯反演,然后发现实际上仍然要枚举三个数,但是这样的三个数的限制多了很多。
考虑对于这个东西进行三元环计数,那么只要求出来所有的边即可。发现由于限制很多,所以实际的边数并不多,可以暴力。
然后三元环可以得到三个数互不相等的贡献,对于其他部分暴力统计即可。
搜索边的的时候需要加入一些剪枝。
C. 光图
对于k次方,考虑用下降幂和组合数表示通常幂,然后就变成了求出从所有连通块中选出若干个的方案数。
然后考虑暴力求出来i个点形成j个连通块的方案数,首先连通图个数可以用多项式ln简单求出,然后dp转移实际上就是两个多项式卷积的形式。
然后就可以枚举这若干个连通块在所有图中出现的次数,发现仍然是卷积的形式,继续预处理出来即可。