CDQ分治
StaroForgin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[NOI2007]货币兑换
货币兑换 题解 很容易发现,如果在第i天买并在第j天卖时可以得到更多的价值,那我们如果要在j天卖的话,就应该在第i天把钱花完去买股票。 我们设为到第i天时可以得到的最大钱数,这样的话可以得到的两种金券数为 ,。,于是,我们得到。 可以得到。于是对于平面上的,当它被所切时,它的最大截距就是最优的决策。 求得最大截距的方法也很简单,这就相当于维护点之间的一个凸包。对于一个点j,若其左边的线的斜率比它的斜率小,那它斜率的情况肯定是更优的,我们需要将其左移。若右边斜率比他大,就要将其右移。 之后,就只原创 2020-05-09 16:33:29 · 259 阅读 · 0 评论 -
[SDOI2011]拦截导弹
拦截导弹 题解 导弹拦截???拦截导弹??? 这变成了一个二维的拦截导弹,我们先按照导弹拦截的思路看看。 设为到i的最长下降子序列的长度,也就是LDS,而则是到i的这样的LDS的个数。这种常规的dp明显会T。 而给出的明显是一个三维偏序的问题,我们可以利用CDQ来解决这个问题。因为t这一维已经排好序了,我们就可以通过t这一维来进行二分。 在分治中就通过h这一维来进行划分,再将左边的操作...原创 2020-05-08 11:45:24 · 295 阅读 · 0 评论 -
[CF641E]Little Artem and Time Machine
Little Artem and Time Machine 题解 很水的一道CDQ。 很容易发现这是一道三维偏序:操作顺序,时间轴与x的值。 由于操作顺序这一维是已经排好序的了,我们可以不去动它,再按照第二维进行CDQ。 按照第二维分治时通过操作的状态将左区间的操作影响添加到右区间上。 因为它只在时才会产生影响,我们需要用桶将其记录下来。因为需要用桶,所以在开始的时候还需要进行一次离散...原创 2020-05-07 15:11:34 · 282 阅读 · 0 评论 -
[hdu1166]敌兵布阵
敌兵布阵 题解 线段树板子题。 真是的,怎么能向 @later_sunset 巨佬一样用线段树把一血抢了呢?不过他是巨佬,想怎么做都无所谓。 当然是用CDQ_分治来做呀!很板子的一道二维偏序的题。 我们先通过第一维也就是坐标来进行排序二分,第一维本身就是有序的,也就不需要排序了。 再通过第二维即点权来进行更新,而对答案的更改就只需要差分了。 然后,...,就完了。 源码 #in...原创 2020-04-28 21:11:10 · 210 阅读 · 0 评论
分享