随笔分类 - 其他-分治
摘要:"http://acm.hdu.edu.cn/showproblem.php?pid=5730" 分治FFT模板。 DP:$f(i)=\sum\limits_{j=0}^{i 1}f(j)\times a(i j)$ 递推第i位时要用到0到i 1位,cdq套FFT,考虑每一位上f的贡献即可。 时间复
阅读全文
摘要:"http://www.51nod.com/onlineJudge/questionCode.html !problemId=1674" 对区间分治,统计$[l,r]$中经过mid的区间的答案。 我的做法是从mid向右扫到r,统计出所有$[mid,i],mid\leq i \leq r$的and和o
阅读全文
摘要:"http://noi.openjudge.cn/ch0204/8463/" 挺恶心的一道简单分治。 一开始准备非递归。 大if判断,后来发现代码量过长,决定大打表判断后继情况,后来发现序号不对称。 最后发现非递归分治非常不可做。 采用递归和坐标变换,降低了编程复杂度和思维复杂度。 坐标变换的思想十
阅读全文
摘要:"http://acm.hdu.edu.cn/showproblem.php?pid=1007" 最近欧式距离模板题。 用分治大法(分治的函数名用cdq纯属个人习惯_(:з」∠)_) 一开始狂M。 后来判断n是否为0就不M了QwQ c++script include include include
阅读全文
摘要:"http://uoj.ac/problem/29" cdq四次处理出一直向左, 一直向右, 向左后回到起点, 向右后回到起点的dp数组,最后统计答案。 举例:$fi$表示一直向右走i天能参观的最多景点数。 其中有一个很重要的条件$fi≤fi+1fi≤fi+1$,这个条件是分治的前提。 关于这个条件
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4456 http://uoj.ac/problem/184 参考(抄)的晨爷的题解(代码) 对矩形进行分治。 每次对一个分治中的矩形,枚举中轴线上的点,依次做dijkstra,范围是该矩形内的点。 处理
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3672 http://uoj.ac/problem/7 链上的情况可以用斜率优化dp。树上用斜率优化dp时,单调队列的复杂度是均摊$O(n)$的,所以放到树上做“可持久化单调队列”复杂度是$O(n^2)
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1176 分治的例题 把每个询问拆成四个询问,整体二分里x坐标递增,按x坐标扫的时候用树状数组维护y坐标前缀和。 一开始想复杂了,按cdq分治先solve左边再处理中间再solve右边,这样每次都要对x坐
阅读全文
摘要:这是道CDQ分治的例题: $O(n^2)$的DP: f [1]←S* Rate[1] / (A[1] * Rate[1] + B[1]) Ans←SFor i ← 2 to n For j ←1 to i-1 x ← f [j] * A[i] + f [j] / Rate[j] * B[i] If
阅读全文