类欧几里得算法学习笔记

ABC313,逆天

为了 ABC313G,来学一下最简单形式的类欧算法。

类欧几里得算法似乎和欧几里得唯一的共性是复杂度证明。

形式化的,我们需要计算 f(a,b,c,n)=i=0nai+bc

首先,如果 ac 或者 bc

f(a,b,c,n)=i=0n(aci+bc+(amodc)i+bmodcc)

=acn(n+1)2+bc(n+1)+f(amodc,bmodc,c,n)

否则,考虑

i=0nai+bc=i=0nj=1ai+bc1

=j=0an+bc1i=0n[j<ai+bc]

j<ai+bcj+1ai+bccj+cai+b

cj+cb1<aicj+cb1a<i

所以,

f(a,b,c,n)=j=0an+bc1i=cj+cb1a+1n1

m=an+bc

=j=0m1(ncj+cb1a)=nmf(c,cb1,a,m1)

而我们发现,a,c 处在“互相取模,交换”的循环中,最终会来到 a=0 或者 n=0,这就好解决了。

posted @   jucason_xu  阅读(32)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示