
块状结构
文章平均质量分 67
荼白777
这个作者很懒,什么都没留下…
展开
-
基础莫队例题
引入看了很多篇解释,我个人理解是莫队是优化后的双指针算法;比如说我们现在要维护区间内数字出现的次数;从[A,B][A,B][A,B]区间转移到[C,D][C,D][C,D]区间;对于BBB到DDD的过程,就是不断的新增数字,如果这个数字的种类是第一次出现,那么就++ans;对于AAA到CCC的过程,就是不断的减少数字,如果这个数字出现的次数已经归零了,那么就--ans;以上的转移可以做到但是现在我们的询问是乱序的,那么我们可以将所有的询问存下来,并且排个序;为了使得时间复杂度降低到O原创 2021-11-16 22:34:27 · 680 阅读 · 0 评论 -
整除分块模板
具体解释看这篇博客例题见这的D1板子整除分块是快速求∑i=1n⌊ni⌋\sum_{i=1}^n \lfloor \frac{n}{i}\rfloor∑i=1n⌊in⌋因为整除的值是连续的,只需要算出左右区间就可以快速求和;算法时间复杂度 O(n)O(\sqrt{n})O(n)int ans=0;for(int l=1,r;l<=n;l=r+1){ r=n/(n/l); ans+=(r-l+1)*(n/l);}printf("%d\n",ans);...原创 2021-09-10 23:43:18 · 132 阅读 · 0 评论 -
分块基本思想与例题
引入分块的基本思想是将一个长度为nnn的段,分成n\sqrt{n}n个块,每个块的长度为n\sqrt{n}n主要思想是大段维护、小段朴素;说白了就是对于一个块来说,我们维护总体;而对于零散的点,我们直接暴力就行;分块的时间复杂度一般是O(nn)O(n\sqrt{n})O(nn),比线段树、树状数组的O(nlogn)O(nlogn)O(nlogn)是慢的;但是线段树、树状数组再维护不满足区间可加、可减性的信息是比较麻烦的;例题一个简单的整数问题2题面传送门思路这题需要区间加、原创 2021-11-15 21:52:21 · 780 阅读 · 0 评论