Class Euclid

f () = Σ [(ai + b) / c] 

ll S(ll k) { return (k*(k+1)/2ll)%MOD; }
ll f(ll a,ll b,ll c,ll n) {
    if(!a)return 0;
    if(a>=c||b>=c)
        return ((a/c)*S(n)%MOD+(n+1)*(b/c)%MOD+f(a%c,b%c,c,n))%MOD;
    ll m=(a*n+b)/c;
    return (m*n%MOD-f(c,c-b-1,a,m-1)+MOD)%MOD;
}
View Code
ll f(ll a,ll b,ll c,ll n){
    if(a==0) return (n+1)*(b/c);
    if(a<c&&b<c){
        ll m=(a*n+b)/c;
        if(m==0) return 0;
        return n*m-f(c,c-b-1,a,m-1);
    }
    return f(a%c,b%c,c,n)+(n+1)*(b/c)+((n+1)/(1+(n&1)))*(n/(2-(n&1)))*(a/c);
}
View Code

g () = Σ i [(a i + b) / c]

h () = Σ i [(one + b) / c]

 

Guess you like

Origin www.cnblogs.com/wronin/p/11622458.html