关于数论分块的两种写法
查看原帖
关于数论分块的两种写法
356003
Moeebius楼主2022/7/7 17:51

RT,

写法1

int Calculate(int x)
{
	int ans=0;
	for(int l=1,r; l<=x; l=r+1)
	{
		r=x/(int)(x/l);
		ans=(ans+(min(r,x)-l+1)*(x/l))%mod;
	}
	return ans;
}    

写法2

int Calculate(int x)
{
	int ans=0;
	for(int l=1,r; l<=x; l=r+1)
	{
		r=x/(int)(x/l);
		ans=(ans+(r-l+1)*(x/l))%mod;//注意这一行
	}
	return ans;
}    

这两种写法都能 AC\mathtt{AC},但是第二种写法的 rr 指针不会超过给定的 xx 吗?不会造成越界吗

求解。

2022/7/7 17:51
加载中...