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

类欧几里德算法

引入

Floor Sum

\(f(a,b,c,n)=\displaystyle \sum_{i=0}^{n}\lfloor\dfrac{a\times i+b}{c}\rfloor\)。我们要求的就是这个东西。

考虑如果 \(a,b\) 中有一个比 \(c\) 大。那么有:

\[f(a,b,c,n)=\sum_{i=0}^{n}\lfloor\dfrac{ai+b}{c}\rfloor \]

\[=\sum_{i=0}^{n}\lfloor\dfrac{(\lfloor\dfrac{a}{c}\rfloor c+a\bmod c)i+(\lfloor\dfrac{b}{c}\rfloor c+b\bmod c)}{c}\rfloor \]

\[=\sum_{i=0}^{n}\lfloor\dfrac{a}{c}\rfloor i+\lfloor\dfrac{b}{c}\rfloor+\lfloor\dfrac{(a\bmod c)i+b\bmod c}{c}\rfloor \]

\[=\dfrac{n(n+1)}{2}\lfloor\dfrac{a}{c}\rfloor+(n+1)\lfloor\dfrac{b}{c}\rfloor+f(a\bmod c,b\bmod c,c,n) \]

否则,我们考虑令 \(m=\lfloor\dfrac{an+b}{c}\rfloor\)

\[\sum_{i=0}^{n}\lfloor\dfrac{ai+b}{c}\rfloor=\sum_{i=0}^{n}\sum_{j=0}^{m-1}[j<\lfloor\dfrac{ai+b}{c}\rfloor] \]

然后开始进行严肃等价变形。

\[j<\lfloor\dfrac{ai+b}{c}\rfloor=\lceil\dfrac{ai+b+1}{c}\rceil-1\iff j+1<\lceil\dfrac{ai+b+1}{c}\rceil \]

\[\iff j+1<\dfrac{ai+b+1}{c}\iff \dfrac{cj+c-b-1}{a}<i\iff \lfloor\dfrac{cj+c-b-1}{a}\rfloor<i \]

于是我们可以推出:

\[f(a,b,c,n)=\sum_{j=0}^{m-1}\sum_{i=0}^{n}[i>\lfloor\dfrac{cj+c-b-1}{a}\rfloor] \]

\[=\sum_{j=0}^{m-1}(n-\lfloor\dfrac{cj+c-b-1}{a}\rfloor)=nm-f(c,c-b-1,a,m-1) \]

然后就只需要用这两个东西来回倒腾就行了,复杂度大约是 \(\log\) 量级的。

代码

http://www.rkmt.cn/news/25636.html

相关文章:

  • AI助力可再生能源系统优化研究
  • 结对项目:小学四则运算题目生成器
  • 软件工程学习日志2025.10.20
  • P14254 分割(树上计数问题) 题解
  • 完整教程:开源 C++ QT QML 开发(一)基本介绍
  • 102302104刘璇综合实践作业任务一:智能购物平台用户需求调研分析报告——基于195份问卷的用户痛点挖掘
  • 【C++实战(71)】解锁C++音视频编写:FFmpeg从入门到实战
  • 20251020
  • 【大模型】大模型训练的几个不同阶段
  • 歌手与模特儿
  • SpringBoot整合Redis教程
  • https://www.luogu.com.cn/problem/CF1635E
  • 整体架构与数据流
  • DeviceNet 转 Ethernet/IP:三菱 Q 系列 PLC 与欧姆龙 CJ2M PLC 在食品饮料袋装生产线包装材料余量预警的通讯配置案例
  • 【大模型】【扫盲】几种不同的微调方法
  • 在 wrapper 类里实现重载方法
  • Vue 项目 AI 文档增量更新工具操作手册
  • P7521 [省选联考 2021 B 卷] 取模 分析
  • 实用指南:socketpair深度解析:Linux中的“对讲机“创建器
  • 嵌入式硬件——基于IMX6ULL的UART(通用异步收发传输器) - 教程
  • CSP-S 模拟赛 Day 19
  • CSP-S 模拟赛 Day 18
  • 2025年市面上高杆灯品牌与国内公司口碑产品推荐榜单
  • 2025年锥芯板品牌口碑排行榜单Top10:行业精选与选择指南
  • Boost 搜索引擎 - 实践
  • P11233 [CSP-S 2024] 染色题解
  • hive udaf 输入输出处理参考手册 - 指南
  • 位运算(早晚得学会)
  • 深入解析:【C++】继承
  • 20231427田泽航第五周预习报告