莫队算法学习记录
2022/7/27 1:24:57
本文主要是介绍莫队算法学习记录,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
什么是莫队:
莫队是一种用于处理询问区间值的暴力离线算法,思路是通过移动两个指针到对应的区间来计算结果,精华是合理分块并依次处理。
什么时候用莫队:
离线,暴力,1e5
原版莫队:
建立区间(x1/2):
ll size=sqrt(n),bnum=ceil((double)n/size); for(ll i = 1; i <= bnum; ++i) for(ll j = (i - 1) * size + 1; j <= i * size; ++j) belong[j] = i;
排序:
bool cmp(Query a,Query b) { return((belong[a.l]^belong[b.l])?belong[a.l]<belong[b.l]:((belong[a.l]&1)?a.r<b.r:a.r>b.r)); }
区间移动:
for(ll i=1;i<=q;i++) { ll ql=query[i].l,qr=query[i].r; while(l<ql) now -=(--num[a[l++]]) ; while(l>ql) now += num[a[--l]]++; while(r<qr) now += num[a[++r]]++; while(r>qr) now -= (--num[a[r--]]); ans1[query[i].id]=now; }
这篇关于莫队算法学习记录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?