struct Query // 这是一个莫队( { int l,r; inline bool operator < (const Query &nt) const { if(l/block==nt.l/block) return ((l/block)&1)?r<nt.r:r>nt.r; return l<nt.l; } };
这个 blockblockblock (块长)一般取的是 n\sqrt nn ,但是我在一些地方看到可以取 n2m3\dfrac {n}{\sqrt{\frac {2m}{3}}}32mn,nnn 是数组长度,mmm 是询问个数。
请问这样真的能有效减少运行时间么?原理是什么?