Calculate floor sum

problem

不用 ACL!

ll fs(ll n,ll m,ll a,ll b){
	ll res=0;
	if (a>=m){
		res+=n*(n+1)/2*(a/m),a%=m;
	}
	if (b>=m){
		res+=(n+1)*(b/m),b%=m;
	}
	ll c=(a*n+b)/m;
	if (!c){
		return res;
	}
	res+=n*c-fs(c-1,a,m,m-b-1);
	return res;
}

problem

submission, no acl

submission, acl

posted @ 2023-08-07 14:28  SFlyer  阅读(15)  评论(0编辑  收藏  举报