上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 44 下一页
摘要: dsu on tree,又名树上启发式合并、重链剖分,是一类十分实用的trick,它常常可以作为一些正解的替代算法: 1.DFS序+线段树/主席树/线段树合并 2.对DFS序分块的树上莫队 3.长链剖分(但复杂度会多一个log) 4.点分治(通常可以做有根树的点分治) 重链剖分的概念,用一个DFS找 阅读全文
posted @ 2019-02-21 20:20 HocRiser 阅读(765) 评论(0) 推荐(0) 编辑
摘要: BZOJ3585,BZOJ2120,BZOJ3757三合一。 对于树上路径问题,树链剖分难以处理的时候,就用树上带修改莫队。 这里的MEX问题,使用BZOJ3585的分块方法,平衡了时间复杂度。 剩下的就是将分块、树上莫队、带修改莫队合在一起了。大概要实现一下几个函数: 插入某值、删除某值、查询ME 阅读全文
posted @ 2019-02-20 20:04 HocRiser 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 树上莫队共有三种写法: 1.按DFS序列分块,和普通莫队类似。常数大,不会被卡。 2.按块状树的方式分块。常数小,会被菊花图卡到O(n)。 3.按[BZOJ1086]王室联邦的方式分块。常数小,不会被卡。唯一的缺点是较抽象,一个块可能是不连通的。 权衡一下当然还是写第三种做法,具体看代码。 然后还有 阅读全文
posted @ 2019-02-18 20:26 HocRiser 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 显然可以离线主席树,这里用莫队+分块做。分块的一个重要思想是实现修改与查询时间复杂度的均衡,这里莫队和分块互相弥补。 考虑暴力的分块做法,首先显然大于n的数直接忽略,于是将值域分成sqrt(n)份,每块记录块内的所有值是否在此当前区间内都已存在。 这样每次暴力从L到R分别放入这个表,最后从小到大询问 阅读全文
posted @ 2019-02-18 18:08 HocRiser 阅读(276) 评论(0) 推荐(1) 编辑
摘要: Prufer序列 在一棵n个节点带标号树中,我们认为度数为1的点为叶子。n个点的树的Prufer序列是经过下面流程得到的一个长度为n-2的序列。 1.若当前树中只剩下两个点,退出,否则执行2。 2.找到树中编号最小的节点,将与它相连的那个点的编号加入Prufer序列的末尾,并将这个叶子删除。返回1。 阅读全文
posted @ 2019-02-17 12:55 HocRiser 阅读(599) 评论(2) 推荐(0) 编辑
摘要: https://zhaotiensn.blog.luogu.org/solution-p4459 从上面的题解中可以找到样例解释,并了解两个人的思维方式。 A和B能从“不知道”到“知道”的唯一情况,就是根据已知条件(也就是已经说的”不知道“次数)排除手上数的所有其它合法拆分方案。 那么,设dp[i] 阅读全文
posted @ 2019-02-16 13:34 HocRiser 阅读(546) 评论(1) 推荐(0) 编辑
摘要: https://blog.csdn.net/xyz32768/article/details/83217209 不难找到DP方程与辅助DP方程,发现DP方程具有后效性,于是高斯消元即可。 但朴素消元显然无法通过,注意到f[i]的方程至多与f[i+1]有关,于是从下往上依次消去最后一个数,剩下的就是一 阅读全文
posted @ 2019-02-16 12:06 HocRiser 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 感觉自己做的麻烦了,但常数似乎不算差。(只是Luogu最慢的点不到2s本地要跑10+s) 感觉我的想法是最自然的,但不明白为什么网上似乎找不到这种做法。(不过当然所有的做法都是分类大讨论,而我的方法手算部分较为麻烦) 每次询问考虑每个位置的贡献,拆分成求所有长度<=R的区间的贡献次数和减去长度<L的 阅读全文
posted @ 2019-02-16 09:44 HocRiser 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 完全背包方案计数问题的FFT优化。首先写成生成函数的形式:对重量为V的背包,它的生成函数为$\sum\limits_{i=0}^{+\infty}\frac{x^{Vi}}{i}=\frac{1}{1-x^{V}}$于是答案就是$\prod \frac{1}{1-x^{V_k}}$。直接做显然会超时 阅读全文
posted @ 2019-02-14 13:01 HocRiser 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 给一个n*n的矩阵,保证:(1)每行都是一个排列 (2)每行每个位置和上一行对应位置不同。求这个矩阵在所有合法矩阵中字典序排第几。考虑类似数位DP的做法,枚举第几行开始不卡限制,那么显然之前的行都和题给矩阵相同,之后都是错排。现在要求的就是,当前行在所有与上一行不交的排列中字典序排第几。同样考虑数位 阅读全文
posted @ 2019-02-13 12:34 HocRiser 阅读(281) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 44 下一页