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

“即时取模”的快读 → 数论

【“即时取模”的快读】
“即时取模”的快读是一种在输入大整数时直接进行取模运算的优化技术,常用于处理需要大数运算但最终结果需取模的场景(如数论题目)。其核心思想是在逐位读取数字时同步计算模值,避免存储完整的大数。

int read() { //fast readint x=0,f=1;char c=getchar();while(c<'0' || c>'9') { //!isdigit(c)if(c=='-') f=-1;c=getchar();}while(c>='0' && c<='9') { //isdigit(c)x=(x*10LL+c-'0')%MOD;c=getchar();}return x*f;
}

●  “即时取模”快读的数学原理:(a×10+b) mod m=((a mod m)×10+b) mod m
证明:设 a=km+r,其中 r=a mod m(即0≤r<m),k为整数。
则左式 (a×10+b) mod m=((km+r)×10+b) mod m=(km×10+r×10+b) mod m=(r×10+b) mod m。
而右式 ((a mod m)×10+b) mod m=(r×10+b) mod m。
左右两式均等于(r×10+b)mod m,等式成立。得证。

● “即时取模”快读的优势

无需高精度存储,时间复杂度为O(n)。其中,n为数字位数。

● “即时取模”的快读,在洛谷 P2613(
https://blog.csdn.net/hnjzsyjyj/article/details/148008443)中有应用。

------------------------------------------------------------------------------------------------------

【传统的快读】→ 
https://blog.csdn.net/hnjzsyjyj/article/details/120131534
● 算法竞赛‌中,处理 ‌1e6 及以上‌个整数输入时,使用“快读”可显著减少输入时间,避免超时。

int read() { //fast readint x=0,f=1;char c=getchar();while(c<'0' || c>'9') { //!isdigit(c)if(c=='-') f=-1;c=getchar();}while(c>='0' && c<='9') { //isdigit(c)x=x*10+c-'0';c=getchar();}return x*f;
}


 

http://www.xdnf.cn/news/6763.html

相关文章:

  • vscode vue 项目 css 颜色调色版有两个
  • 【Closure-Hayd】
  • Linux面试题集合(5)
  • RJ连接器的未来:它还会是网络连接的主流标准吗?
  • Vue.js教学第四章:Vue.js 模板语法之指令应用
  • 反射机制动态解析
  • 融智学视域下的系统性认知增强框架——基于文理工三类AI助理赋能HI四阶跃迁路径
  • MUSE Pi Pro 开发板 Imagination GPU 利用 OpenCL 测试
  • SpringBoot启动流程深入分析
  • JavaScript【5】DOM模型
  • AI赋能把“杂多集合”转化为“理想集合”的数学建模与认知升级
  • Git 版本控制系统入门指南
  • 基于Llama3的开发应用(二):大语言模型的工业部署
  • (C语言)超市管理系统 (正式版)(指针)(数据结构)(清屏操作)(文件读写)(网页版预告)(html)(js)(json)
  • java函数内的变量问题
  • 高频面试题(含笔试高频算法整理)基本总结回顾25
  • 汽车Wafer连接器:工业设备神经网络的隐形革命者
  • git提交库常用词
  • 深度学习---知识蒸馏(Knowledge Distillation, KD)
  • BGP路由策略 基础实验
  • NY321NY322美光闪存芯片NY323NY336
  • 手机打电话时如何将通话对方的声音在手机上识别成文字
  • python + streamlink 下载 vimeo 短视频
  • 区块链基本理解
  • OCCT知识笔记之OCAF框架详解
  • CSPM-3级考试成绩已出!附查询流程
  • 1949-2022年各省农作物播种面积数据(22个指标)
  • Python开源项目月排行 2025年4月
  • SpringBoot中使用Flux实现流式返回的技术总结
  • Java8到24新特性整理