莫队从入门到精通
食用须知[*]这篇文章作者断断续续写了几个月,可能读起来不连续或者风格术语变化,但是不影响大体
[*]部分内容引自 \(OI-wiki\),还有些内容参考了大佬博客,但是已经找不全了,在此一并感谢
[*]本文章最初的设计意图是校内讲课用,因此有部分活泼的话语实际上是给同学写的
[*]有错误、不足欢迎指出,可以私信作者或者评论,有时间一定修
[*]可能更好的阅读体验,不要脸的求一波关注和点赞
[*]这篇文章越往后的内容可能越精炼,可以当快速复习整理食用,也可作为新手刷题
引子
副将不屑的瞥了他一眼,一抹黑色攀上手中的弯刀,恐怖的毁灭之力倾泻而出!
“对了,最近,我给我这禁墟起了个名字,你要不要听听看?”副将手握黑色弯刀,转头问道。
“你一个莽夫,能起什么好名字。”儒生扬起下巴,“说说看,我可以给你润色一下。”
副将缓缓提起手中的黑色弯刀,那双眼眸中,迸发出一道璀璨的寒芒,他嘴角微微上扬,一字一顿的开口:
“黑,月,斩!!”
颂——!!
一道数十米长的黑色月牙猛地掠过夜空,瞬间将三只呼啸而来的“神秘”身体斩成漫天碎块,黑芒吞噬他们的残躯,化作一阵血雨,飘零在灯火通明的酒楼上空。
噗嗤!
儒生忍不住笑了出来,“黑月斩?这么难听的名字,也只有你詹玉武能想出来了!
”副将咬着牙,恶狠狠的开口,“那你起一个?”
儒生思索片刻,朗声说道:“刀似月牙,泯灭众生……不如,就叫它【泯生闪月】吧!”
基本预处理
首先我们要明确莫队是离线算法,不能做一些强制在线的题,普通莫队也并不支持修改
处理块,块长取值为 len
for(int i=1;i<=n;i++) pos=(i-1)/len+1;;
[*]对于乘积,枚举因数即可
#include//#define int long longusing namespace std;const int N=2e5+50,P=1e9+7;int read() { int x=0;short f=1;char s=getchar(); while(s57){f=s=='-'?-1:1;s=getchar();} while(s>=48&&s
页:
[1]