造福后人
查看原帖
造福后人
526677
封禁用户楼主2023/10/5 21:06

有两个卡常技巧:

  1. 用unsigned int比int快,亲测
  2. 如果你写的莫队并且使用了估价函数代替根号分治,那么你可以加一个特判,判断有没有能被估价函数分开的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 !!!

2023/10/5 21:06
加载中...