当前位置: 首页 > news >正文

类欧几里得算法

令 $ f(a,b,c,n) = \sum\limits_{i=0}^n \lfloor \dfrac{ai+b}{c} \rfloor $

$ f(a,b,c,n) = \sum\limits_{i=0}^n \lfloor \dfrac{(a \bmod c)i + (a- a \bmod c)i + (b \bmod c) + (b - b \bmod c)}{c} \rfloor $

$ = \sum\limits_{i=0}^n \lfloor \dfrac{(a \bmod c)i + (a- a \bmod c)i + (b \bmod c) + (b - b \bmod c)}{c} \rfloor $

其中 $ a-a \bmod c $ 和 $ b-b \bmod c $ 都是 $ c $ 的倍数,所以可以直接放到外面去。

$ = \sum\limits_{i=0}^n \lfloor \dfrac{(a \bmod c)i + (b \bmod c)}{c} \rfloor + \lfloor \dfrac{ai}{c} \rfloor + \lfloor \dfrac{b}{c} \rfloor $

后面这两个东西一个是常数,一个可以直接高斯求和,所以直接提到求和外面来。

$ = \dfrac{(n+1)\times n \times \lfloor \dfrac{a}{c} \rfloor}{2} + (n+1) \times \lfloor \dfrac{b}{c} \rfloor + \sum\limits_{i=0}^n \lfloor \dfrac{(a \bmod c)i + (b \bmod c)}{c} \rfloor $

即为:

$ = \dfrac{(n+1)\times n \times \lfloor \dfrac{a}{c} \rfloor}{2} + (n+1) \times \lfloor \dfrac{b}{c} \rfloor + f(a\bmod c,b\bmod c,c,n) $。

这样就把 $ a,b $ 的定义域缩小到了 $ [0,c) $,所以接下来考虑 $ a,b \in [0,c) $ 的情况。

(这里 $ a,b $ 为负数也可以做,在上面推导的时候把 $ \lfloor \dfrac{a}{c} \rfloor $ 替换为 $ \dfrac{a-a\bmod c}{c} $ 即可)

$ f(a,b,c,n) = \sum\limits_{i=0}^n \lfloor \dfrac{ai+b}{c} \rfloor $

$ = \sum\limits_{i=0}^n \sum\limits_{j=0}^{\lfloor \frac{ai+b}{c} \rfloor - 1} 1 $

$ = \sum\limits_{j=0}^{\lfloor \frac{an+b}{c} \rfloor - 1} \sum\limits_{i=0}^n [j<\lfloor \frac{ai+b}{c} \rfloor] $

考虑把艾弗森括号里面的东西提出来化简一下,

$ j<\lfloor \frac{ai+b}{c} \rfloor $

$ = j+1 \le \lfloor \frac{ai+b}{c} \rfloor $

$ = j+1 \le \frac{ai+b}{c} $

$ = cj+c \le ai+b $

$ = cj+c-b \le ai $

$ = cj+c-b-1 < ai $

$ = \lfloor \frac{cj+c-b-1}{a} \rfloor < i $

这样括号里面的东西就变成了对 $ i $ 的限制,且这个限制与后面这个求和无关。

所以后面这个求和就可以省去:

$ = \sum\limits_{j=0}^{\lfloor \frac{an+b}{c} \rfloor - 1} (n-\lfloor \frac{cj+c-b-1}{a} \rfloor) $

令 $ m=\lfloor \frac{an+b}{c} \rfloor $,则式子可以化为:

$ = m*n-\sum\limits_{i=0}^{m-1} \lfloor \frac{cj+c-b-1}{a} \rfloor $

注意到后面那个式子又可以变为 $ f $ 函数的形式,即 $ f(c,c-b-1,a,m-1) $。

即 $ f(a,b,c,n) = n*m - f(c,c-b-1,a,m-1) $。

这样就可以递归了,复杂度为 $ O(\log n) $。

那么总的递归式即可写成:

int calc(int a,int b,int c,int n) {if (a<0 or b<0) {int res=0;if (a<0) {int t=(a%c+c)%c;res-=(n+1)*n/2*((t-a)/c);a=t;}if (b<0) {int t=(b%c+c)%c;res-=(n+1)*((t-b)/c);b=t;}return res+calc(a,b,c,n);}if (a==0) return ((b/c)*(n+1));if (a>=c or b>=c) return (n+1)*n/2*(a/c)+(n+1)*(b/c)+calc(a%c,b%c,c,n);int m=(a*n+b)/c;return n*m-calc(c,c-b-1,a,m-1);
}

类欧模板剩下两个先咕咕咕

http://www.jsqmd.com/news/332446/

相关文章:

  • 济南硕士留学机构排名揭晓,资质正规机构全面解析
  • 2026年最新 Notepad2 下载安装与配置教程|轻量级编辑器全面替代记事本
  • 2026年版|程序员转行大模型必看!6大高潜力方向(建议收藏)
  • 用Gemini 3做Web设计
  • 2026年充电桩品牌专项测评报告:产品技术与市场服务的深度分析与研判
  • 如何挑选高定全屋品牌?2026年全屋定制推荐与评测,解决风格统一与交付痛点
  • 论文降AI终极指南:应对2026学位法与知网算法升级的实战策略
  • Gemini 3:设计能力超乎想象
  • 2026年汝瓷艺术品推荐:广东周泽堂文化发展有限公司,粉青/天青/手绘/微书/彩绘/摆件全系供应
  • 郑州留学机构口碑排名出炉,反馈及时、服务全面解析
  • 井冈山市英语雅思培训机构推荐?2026权威测评出国雅思辅导机构口碑榜单
  • 2026年诚信的沉水植物厂家推荐,苏州绍兴徐州等地适用
  • 从实验室到工厂:国产气体检测仪质量排行与选型建议
  • AI Web设计实测
  • 2026年佛山防撞板厂排名,靠谱供应商价格多少钱
  • 2026年小户型/别墅/大宅装修设计推荐:洛阳福尚云宅一站式装修服务全解析
  • AI技术点总结(4)
  • 2026年全屋定制品牌推荐榜:五大服务商综合实力深度解析与选购指南
  • 2026年三元乙丙胶条供应商推荐,佛山维里克口碑名列前茅
  • 【小程序毕设全套源码+文档】基于微信小程序的网上订餐服务管理系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 2026年冷弯成型设备推荐:山东博凌机械科技,电缆桥架/货架/配电箱等成型机专业制造
  • 梳理木纹砖厂家,峰度陶瓷源头直供是品质之选哪家好
  • 鹿鸣糙米工坊怎么样,产品好用吗?在黑龙江口碑好不好
  • 2026年聚脲材料实力厂家推荐:徐州双聚环保新材料,全系聚脲产品适配多领域需求
  • TinyWorlds 源码阅读:1000 行代码理解 Genie 架构
  • 2026年网站建设服务推荐:绍兴魔方网络科技,外贸/机械/建筑/电商网站建设一站式服务
  • OpenClaw 钉钉和飞书集成方案研究 OpenClaw 研究分析报告
  • 奈飞工厂算法挑战赛:详解个性化推荐系统构建
  • 《你真的了解C++吗》No.032:模板特化与偏特化——处理“特殊情况”的艺术
  • 2026实验室装修/通排风厂家推荐(专业版):4家靠谱服务商实测,合规高效之选