码迷,mamicode.com
首页 > 编程语言 > 详细

类欧几里得算法

时间:2020-01-22 22:01:04      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:inline   cpp   splay   return   ret   mod   技术   com   amp   

\(\sum_{x=0}^{n-1}\lfloor \frac{ax+b}{c} \rfloor\)

\(f(a,b,c,n)=\sum\limits_{x=0}^{n-1}\lfloor \frac{ax+b}{c} \rfloor\)

进行化简,得

\[ \begin{aligned} &f(a,b,c,n) \\ =&\sum_{x=0}^{n-1}\lfloor \frac{ax+b}{c} \rfloor \\ =&\sum_{x=0}^{n-1}\lfloor \frac{(a \bmod c)x + (a - a \bmod c)x+(b \bmod c)+(b - b \bmod c)}{c} \rfloor \\ =&\sum_{x=0}^{n-1}\lfloor \frac{(a \bmod c)x + (b \bmod c)}{c} \rfloor + \frac{(a - a \bmod c)x}{c} + \frac{b - b \bmod c}{c}\\ =&\sum_{x=0}^{n-1}\lfloor \frac{(a \bmod c)x + (b \bmod c)}{c} \rfloor + \lfloor \frac{a}{c} \rfloor x + \lfloor \frac{b}{c} \rfloor\\ =&\frac{n(n-1)}{2}\lfloor \frac{a}{c} \rfloor + n \lfloor \frac{b}{c} \rfloor + \sum_{x=0}^{n-1}\lfloor \frac{(a \bmod c)x + (b \bmod c)}{c} \rfloor \\ =&\frac{n(n-1)}{2}\lfloor \frac{a}{c} \rfloor + n \lfloor \frac{b}{c} \rfloor + f(a \bmod c,b \bmod c, c, n) \end{aligned} \]

技术图片

技术图片

\(code:\)

ll f(ll a,ll b,ll c,ll n)
{
    if(n<=0) return 0;
    return n*(n-1)/2*(a/c)+n*(b/c)+f(c,(a*n+b)%c,a%c,(a%c*n+b%c)/c);
}

类欧几里得算法

标签:inline   cpp   splay   return   ret   mod   技术   com   amp   

原文地址:https://www.cnblogs.com/lhm-/p/12229637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!