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

qoj6277 Linear Congruential Generator

SOLUTION FROM WUMIN4

题意

给出无穷序列 \(X_0\) 的值和 \(a,c\),令 \(X_{i+1}=(aX_i+c)\bmod m\)

给出 \(l_1,r_1,l_2,r_2\),求:

\[\sum_{i=l_1}^{r_1} \sum_{j=l_2}^{r_2}( X_i \bmod (X_j+1)) \]

\(1\le T\le 10^5,1\le \sum m\le 10^6,1\le a,c,X_0<m,1\le l_1,r_1,l_2,r_2\le 10^6\)

思路

原式化为:

\[\sum_{i=l_1}^{r_1} \sum_{j=l_2}^{r_2} X_i - \lfloor\frac{X_i}{X_j+1}\rfloor(X_j+1) \\(r_2-l_2+1)\sum_{i=l_1}^{r_1} X_i - \sum_{i=l_1}^{r_1} \sum_{j=l_2}^{r_2} \lfloor\frac{X_i}{X_j+1}\rfloor(X_j+1) \]

观察到当 \((X_j+1)\) 越来越大时,\(\frac{X_i}{X_j+1}\) 所算出来的重复的值会越来越多。

具体的,由于 \(X_i\) 的上限为 \(m-1\),对于 \(X_j\) 最多只会出现 \(\lfloor\frac{m-1}{X_j+1}\rfloor\) 个不同的元素。

假如 \(X_j\) 也互不相同,则总元素个数即为 \(\sum_{i=1}^m \lfloor\frac{m-1}{i}\rfloor\),这个数量是 \(m\log m\) 级别的。

对于每个 \(X_j\),所有满足 \(k(X_j + 1)\le X_i < (k + 1)(X_j + 1)\)\(X_i\) 得到的答案都是相同的。

于是统计在 \([l_2,r_2]\)\([0,m-1]\) 的每个 \(X_j\) 出现的次数,容易证明原序列总是会出现长度不超过 \(m\) 的循环节,并枚举 \(k=0,1,\cdots,\lfloor\frac{m-1}{X_j+1}\rfloor\),统计 \(X_i\) 的出现次数,求和即可。

http://www.hskmm.com/?act=detail&tid=10475

相关文章:

  • docker+k8s
  • 多模型适配突围:JBoltAI如何重构企业数智化转型新范式?
  • JBoltAI赋能制造业数智化转型:AI从概念到落地的Java实践
  • JBoltAI赋能医疗数智化转型:AI大模型如何重塑医疗健康新范式
  • JBoltAI多模态赋能:制造业数智化升级的新引擎
  • 深入解析:YARN架构解析:深入理解Hadoop资源管理核心
  • JBoltAI:破解Java企业级AI应用落地难题的利器
  • 直播软件开发,单例设计模式很简单吗? - 云豹科技
  • Java开发者的AI革命:如何用JBoltAI应对数智化转型挑战
  • JBoltAI:赋能Java老项目快速接入AI能力的创新之道
  • Day04 C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\operator Demo01-08+Doc
  • 实用指南:养老专业实训室建设方案的分级设计与人才培养适配
  • 物业企业绩效考核制度与考核体系 - 指南
  • Java开发生态的数智化升级:JBoltAI如何重塑企业AI应用架构
  • Mapper.xml与数据库进行映射的sql语言注意事项
  • 直播软件搭建,如何实现伪分布式平台部署? - 云豹科技
  • 初步研究vivio的互传的备份数据格式
  • 完整教程:C#.NetCore NPOI 导出excel 单元格内容换行
  • resultMap和resultType
  • 直播软件怎么开发,自适应两栏布局方式 - 云豹科技
  • resultMap和自定义映射结果形式(ResultMapManage)以及ResultMap Vs ResultType
  • 嵌入式设备不能正常上网问题
  • 2、论文固定模板(背景过度结尾)
  • go: 图片文件上传
  • go: 生成缩略图
  • git: 报错: fatal: 协议错误:错误的行长度字符串:This 或 fatal: protocol error: bad line length character: This
  • jquery: Justified gallery
  • 安装crmeb
  • gin: 用zap记录访问日志
  • gin: 打包模板文件、静态文件到二进制文件中