前言

每次看了很快就忘了,干脆写一篇博客,来加深记忆。

定义


f(a,b,c,n)=i=0nai+bc

g(a,b,c,n)=i=0niai+bc

g(a,b,c,n)=i=0nai+bc2

m=an+bc

一、f(a,b,c,n)

当a>=c时,=f(a%c,b,c,n)+acn(n+1)/2
当b>=c时,=f(a,b%c,c,n)+bc(n+1)
然后

=i=0nai+bc

我们将ai+bc当作一条以i为自变量的直线,
类欧几里得小记
于是原式就等于这个直角梯形内的整点个数,
=i=0nj=1m[ai+bc>=j]

=i=0nj=0m1[ai+bc>=j+1]

=i=0nj=0m1[ai+b>=jc+c]

=i=0nj=0m1[ai+b>jc+c1]

=i=0nj=0m1[ai>jc+cb1]

=i=0nj=0m1[i>jc+cb1a]

=j=0m1i=0n[i>jc+cb1a]

=j=0m1(ni=0n[i<=jc+cb1a])

=nmf(c,cb1,a,m1)

时间复杂度类似与扩展欧几里得。

二、g(a,b,c,n)

//坑

相关文章: