有两个卡常技巧:
- 用
unsigned int比int快,亲测
- 如果你写的莫队并且使用了估价函数代替根号分治,那么你可以加一个特判,判断有没有能被估价函数分开的k,如果没有就不需要另外处理了,效果如下:
for(ll k(2);k<flag;++k)
if(MIN(flag/k,flag>>7)*vec[k].size()>(n<<5)){
fl=0;
break;
}
for(ll k(2);k<flag;++k){
if(!vec[k].size()) continue;
if(MIN(flag/k,flag>>7)*vec[k].size()<(n<<5)&&fl){
ve.insert(ve.end(),vec[k].begin(),vec[k].end());
continue;
}
另外,拜谢 @NATO !!!