求f
$\displaystyle f(a, b, c, n) = \sum_{i=0}^n\left \lfloor \frac{ai+b}{c} \right \rfloor$
#include<bits/stdc++.h> using namespace std; typedef long long ll; const ll mod = 1e9+7; ll f(ll a, ll b, ll c, ll n) { if(!a) return (b/c)*(n+1)%mod; if(a >= c || b >= c) return (f(a%c, b%c, c, n) + n*(n+1)/2%mod*(a/c)%mod + (n+1)*(b/c)%mod) % mod; ll m = (a*n+b) / c; return (n*m%mod - f(c, c-b-1, a, m-1) + mod)%mod; } int main() { printf("%lld\n", f(1, 0, 2, 5)); //0+1+1+2+2=6 }