摘要: 前言: 主要最近在刷莫队的题,这题GCD的特性让我对莫队的使用也有了新的想法。给福利:神犇的一套莫队算法题 先撇开题目,光说裸的一个莫队算法,主要的复杂度就是n*sqrt(n)对吧,这里我忽略了一个左端点(增加/删除)或者右端点(增加/删除)的所带来的复杂度, 之前也遇到过卡这里的复杂度,但是... 阅读全文
posted @ 2017-02-18 22:36 see_you_later 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 题意: 把一堆数分成两堆,使得两堆的差值最小。 思路: 先把一堆数分成两堆,然后用个set存一堆的所有组合,枚举第一堆的状态,二分查找第二堆接近half_value。 瞎说时间复杂度:O(2^17*34); (代码来着某位神犇) #include#include#include#include... 阅读全文
posted @ 2017-02-18 14:35 see_you_later 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一个序列和一些区间,每次询问对区间所有不同的数,求每个不同的出现的个数的平方*其值的总和 2*2*1+1*1*2 思路: 裸的莫队算法。 补: 1.cmp写错。 2.LL运算不会进行转化。 3.莫队的起始应该直接先处理好L,R。 卡了将近2.5h,水题让自己很生气。以及不会查错误真的撒... 阅读全文
posted @ 2017-02-18 10:20 see_you_later 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 思路: 区间逆序数即是交换次数。 逆序数,可以用树状数组吧。 怎么处理区间变换的时候求逆序数啊。。 这里分成左边的增/删,右边的增/删 因为是按时序插入, 所以左边增,增一个数,计算:ans+=sun(cur_val-1)[比他小的数的个数] 那么删:删一个数,计算ans+=sun(cur_va... 阅读全文
posted @ 2017-02-18 00:20 see_you_later 阅读(131) 评论(0) 推荐(0) 编辑