[除法分块] BZOJ1257: [CQOI2007]余数之和sum

来源:互联网 发布:经典数据新闻案例分析 编辑:程序博客网 时间:2024/06/05 03:24

题意

戳这里

题解

傻逼题。

i=1nm mod i=i=1nmi×mi=nmi=1ni×mi

直接分块。O(n)

#include<cstdio>#include<algorithm>using namespace std;typedef long long LL;LL n,m,ans;int main(){    scanf("%lld%lld",&m,&n);    for(LL i=1,nxt;i<=min(m,n);i=nxt+1){        nxt=n/(n/i); nxt=min(nxt,min(n,m));        ans+=(i+nxt)*(nxt-i+1)/2*(n/i);    }    ans=n*m-ans;    printf("%lld\n",ans);    return 0; }