随笔分类 -  cdq分治

摘要:题意略 题解:可以列出dp方程$dp[i]=max(dp[j] {\frac{a[i] c[j]+b[i]}{a[j] c[j]+b[j]}}$,化简可以得到$\frac{dp[i]}{b[i]}=\frac{a[i]}{b[i]} \frac{dp[j] c[j]}{a[j] c[j]+b[j]} 阅读全文
posted @ 2019-04-04 19:07 walfy 阅读(210) 评论(0) 推荐(0)
摘要:题意:给一个矩阵,两种操作1:修改单点的权值,2:查询和某个点曼哈顿距离小于r点的权值和 题解:先旋转坐标轴,(x,y) (x y,x+y)然后就变成了cdq分治裸题,子矩阵和和单点修改一维时间,二维xcdq,三维ybit // pragma GCC optimize(2) // pragma GC 阅读全文
posted @ 2018-10-16 13:22 walfy 阅读(129) 评论(0) 推荐(0)
摘要:题意:$dp[n]=\sum_{i=1}^ndp[i] a[n i]+a[n]$,求dp[n], 题解:分治fft裸题,就是用cdq分治加速fft,因为后面的需要用到前面的dp来算,不可能每次都fft过去,那样复杂度就$O(n^2\logn)$了 考虑当前枚举到[l,r]区间,左侧是[l,m]对于右 阅读全文
posted @ 2018-08-14 16:33 walfy 阅读(247) 评论(0) 推荐(0)
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=3295 把删除看成反向插入,把时间看成一维,下标看成一维,值看成一维,就变成了三维偏序问题了,需要正着扫一遍和反着扫一遍 阅读全文
posted @ 2018-08-07 15:57 walfy 阅读(133) 评论(0) 推荐(0)
摘要:三维偏序裸题,cdq分治时,左侧的x一定比右侧x小,然后分别按y排序,对于左侧元素按y大小把z依次插入到树状数组里,其中维护每个左侧元素对右侧元素的贡献,在bit查询即可 / Problem: 3262 User: walfy Language: C++ Result: Accepted Time: 阅读全文
posted @ 2018-07-23 23:22 walfy 阅读(151) 评论(0) 推荐(0)
摘要:树状数组模板题,用cdq分治做 cdq分治: 分:把l到r分成两个区间操作 治:对每个分出来的区间进行操作 但是cdq分治和一般分治不同的是,一般的分治左右两个区间互不干扰,但是cdq分治处理的是区间之间有影响的 具体到这题上的操作步骤: 1,先把每一位上的值看成修改 2,记录每一位的操作,对于查询 阅读全文
posted @ 2018-01-16 11:32 walfy 阅读(151) 评论(0) 推荐(0)