07 2017 档案
摘要:题意: 两个操作: 1、把一条树链上的所有点权值变为w。 2、查询一条树链上有多少个颜色段 分析: 一看就是区间合并,做这到题首先需要一定的区间合并基础, 不过这题合并这部分在线段树区间合并中已经算是非常的简单的了。 线段树部分没有难度。 那么难点在于,在往LCA上走的时候,我们如何进行区间合并。
阅读全文
摘要:前言: 一直听说树链剖分-树链剖分,现在见识一下,,,感觉不是很难0.0 看了一下kuangbin模板基本秒懂 对于点,按重边优先给予每个点一个编号,对于一条重链上的点,编号则是连续的,将所有编号映射到线段树上,即可进行一切区间操作。 对于边的处理,我们将所有边对应到这条边节点更深的那个点上即可。
阅读全文
摘要:题意: 两种询问: 1、询问以u为根的子树中出现的a次的数的和与出现b次的数的和的gcd。 2、询问u到v的树链中出现的a次的数的和与出现b次的数的和的gcd。 有点绕。。 分析: 因为自己不会树上莫队,所以学习了一波。 但是对于子树我还是有所经验,可以转成dfs序来做,之前有做过类似的题,比如这题
阅读全文
摘要:题意: 多次查询一个树链上的中位数(其实就是求K大)。 分析: 感觉莫队可做,只是不会树上莫队。。 而且这里是边权,处理起来貌似有点小麻烦。。 后来发现其实貌似是一个很老的题,,kuangbin模板书上有类似的题。 树链上的第K大数,这是一道可以用主席树解的题,复杂度才nlogn。 这里也是这样先求
阅读全文
摘要:题意: 一个长度为n的数列,m次查询L到R之间所有连续子序列的gcd之和。 分析: 很明显的莫队算法。 很明显发现了gcd是单调递减的,并且最多存在32个的性质。 想了很久,脑补了许多种方法来拉伸L和R,但是都有漏洞。 实际上,这道题还是比较复杂的。。 在思考的过程中,我没有充分利用gcd的递减性质
阅读全文
摘要:因为这两题差不多,而且比较简单,就放一起,做了这题,这种题目就是巨水的题了。随便写都行。 CodeForces - 86D Powerful array 题意: 多次查询数列中从L到R每个数字出现次数的平方乘这个数字的和。 代码: 1 #include <cstdio> 2 #include <cs
阅读全文
摘要:题意: 长度为n的数列,m次询问,还有一个k。每次询问询问询问从数列的L到R内有多少个连续子序列异或起来等于k。 分析: 因为事先知道这题可以用莫队写,就正好用这题练习莫队。 预处理每个前缀异或和。 然后莫队按分块排序后,不断更新,用一个数组cnt[]记录当前L到R前缀和的数量。 R向右拉,新增的数
阅读全文