T1
简单的树形dp,记录套上log和取模后的最大值
f[i][0]表示i点不选,其子树的最大值,f[i][1]表示i点选上的最大值
转移方程
\[f[u][1]=w[u]*\prod_{v=son[u]}f[v][0]
\]
\[f[u][0]=\prod_{v=son[u]}\max(f[v][0],f[v][1])
\]
T2
可以发现对于一个奇数p,与其相关的集合为\({p,2*p,2^2*p,\cdot\cdot\cdot,2^k*p}\)
集合里的每个元素,A,B都隔着选
所以对于每个集合,若集合大小为偶数,对答案贡献为2
若集合大小为奇数,可以从中任选一个元素为A,剩下的平分
所以最终A集合大小的范围在\([l,r]\)之间,所有比l大的贡献都是奇数大小集合产生的,组合数,卢卡斯
由于集合的元素最多log(n)个,且具有单调性,可以二分每个集合大小所管辖的奇数区间,复杂度\(O(q\log^2n)\)
其实不用二分,直接计算得出集合大小为i的奇数所在的区间为\([\frac{n}{2^i}+1,\frac{n}{2^{i-1}}]\),\(O(q\log n)\)