类欧几里得小记

前言

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

定义


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)

//坑

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值