
分块
HbFS-
di4CoveRy
展开
-
[BZOJ4028][HEOI2015]公约数数列
哇太神啦!隐约感觉到一定要分块,可是并没有想出来处理xor的方法,看到题解真的跪倒了orz根号分块,记录区间gcd和区间异或和,然后再另外一个数组里对这个区间进行排序,注意双关键字把标号小的扔前面单点修改直接暴力重构区间 查询的时候,如果该区间的gcd和这个区间之前的gcd相等(这个表述相当有问题,意会即可),把gcd除掉以后在有序数组里面二分即可(类似lower_bound做法)。若不相等,暴力原创 2017-02-01 12:09:36 · 400 阅读 · 0 评论 -
BZOJ4537 [ HNOI2016 ] 最小公倍数 (按轶合并带权并查集+分块离线)
太弱啦,看了题解才知道怎么做 离线算法: 对于单组询问x , y , a , b,我们可以将边权小于a的点全部加入带权并查集,然后判断x,y所在的并查集里面最大的权值是否为b。 对于多组询问,我们采用分块离线的算法。将边权按a为第一关键字升序排序,每k个分一组,总共有m/k组。 对于在这个分组之前的所有分组和当前分组内的边,按b为第一关键字升序排序,记录下在这个块内需要被统计的答案。对块内询原创 2016-09-26 19:37:17 · 606 阅读 · 1 评论