首页 > 其他 > 详细

noip模拟42

时间:2021-08-17 23:21:06      阅读:20      评论:0      收藏:0      [点我收藏+]

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)\)

noip模拟42

原文:https://www.cnblogs.com/sitiy/p/15153906.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!