根号算法题库

前言

根号算法博大精深,决定在此收集。
例题我博客基本都能找到。

带根号算法

分块算法

一种是最普通的分块算法,把序列分块,然后可以解决区间问题。分块算法可以维护一些线段树维护不了的东西,例如单调队列等,线段树能维护的东西必须能够进行信息合并,而分块则不需要。不过,和线段树一样,分块需要支持类似标记合并的东西。
当然,为了使得速度不至于太慢,每一块的大小应该通过实验得知。即找到一个合理的块大小,使得在该大小下算法跑的比较快。
具体实现时,用belong[i]表示i所属块。对于修改操作,某一块全部要被修改,则更改它的信息。多余部分直接暴力修改,有些时候需要对多余部分所属块进行暴力重构(例如维护单调队列)。
例题:jzoj3167查税,用分块维护单调队列。去年五校联考第六场的第三题,用分块维护桶。bzoj2002弹飞绵羊,用分块维护答案。bzoj3809Gty的二逼妹子序列的一种算法中需要用到这种最普通的分块。jzoj4438K小数查询。

还有其他的分块,这类题目没有修改操作,但是要求询问的东西较难维护。其通常为预处理ans[i,j]表示第i块到第j块的答案,然后再预处理sum[i,j]表示前j块i元素的出现次数,然后对于一个询问,只对多余部分进行扫描,然后可以用一些数据结构维护。
又或者预处理第i块到第n块的答案诸如此类。都是没有修改,利用分块的题目。
例题:bzoj4241历史研究,bzoj3289Mato的文件管理,bzoj2821作诗,bzoj2724蒲公英,bzoj374

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值