摘要: 按位统计,考虑每个数作为最大值的贡献,只需统计其左右有奇数个1和偶数个1的区间个数即可。 阅读全文
posted @ 2018-11-15 22:43 Gloid 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 对节点按编号分块。设f[i][j]为修改j号点对第i块的影响,计算f[i][]时dfs一遍即可。记录每一整块的sum。修改时对每一块直接更新sum,同时用dfs序上的树状数组维护子树和。查询时累加整块区间的sum,剩余部分bit上暴力查询。分析一下复杂度。设块大小为k,计算f数组的复杂度为O(n2/ 阅读全文
posted @ 2018-11-15 21:47 Gloid 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 考虑没有深度限制怎么做。显然的做法是直接转成dfs序上主席树,但如果拓展到二维变成矩形数颜色数肯定没法做到一个log。 另一种做法是利用树上差分。对于同种颜色的点,在每个点处+1,dfs序相邻点的lca处-1,那么查询子树颜色数就只需要查询子树和了。 然后加上深度限制。考虑将点一层层加进去,利用se 阅读全文
posted @ 2018-11-15 19:54 Gloid 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 判断两棵无根树是否同构只需要把重心提作根哈希即可。由于只添加了一个叶子,重心的位置几乎不发生偏移,所以直接把两棵树的重心提起来,逐层找哈希值不同且对应的两子树即可。被一个普及组子问题卡一年。 阅读全文
posted @ 2018-11-15 00:54 Gloid 阅读(197) 评论(0) 推荐(0) 编辑