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

洛谷题单指南-进阶数论-P4942 小凯的数字

原题链接:https://www.luogu.com.cn/problem/P4942

题意解读:l(l+1)(l+2)...(r1)r​的数字模9的结果。

解题思路:

l(l+1)(l+2)...(r1)r​ 展开成l * 10^? + (l+1)*10^? + (l + 2)*10^? + ... + (r - 1) * 10^? + r

  ( l * 10? + (l+1)*10? + (l + 2)*10? + ... + (r - 1) * 10? + r ) % 9

= ( l * 10?%9 + (l+1)*10?%9 + (l + 2)*10?%9 + ... + (r - 1) * 10? + r ) % 9

由于10% 9 = 1,上式进一步简化为:

(l + l+1 + l+2 + ... + r-1 + r) % 9

= ((l + r) * (r - l + 1) / 2) % 9

根据模的性质,除以2模9转化成乘以2模9的逆元,2模9的逆元根据定义可以计算:2x ≡ 1 (mod 9),x = 5

因此上式转化为:

((l + r) * (r - l + 1)  * 5) % 9

= (((l + r)%9) * ((r - l + 1)%9)  * 5) % 9

这样就不会超出longlong的范围了

当然,如果不了解逆元,直接用高精度乘法和除法来做也完全是ok的。

100分代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;LL l, r, ans;int main()
{int t;cin >> t;while(t --){cin >> l >> r;ans = ((l + r) % 9) * ((r - l + 1) % 9) * 5; cout << (ans % 9) << endl;}return 0;
}

 

http://www.gsyq.cn/news/9869.html

相关文章:

  • 三门问题的多种解法,总有一个你看得懂
  • 详细介绍:无公网 IP 访问群晖 NAS:神卓 N600 的安全解决方案(附其他方法风险对比)
  • 2025.9.18 总结
  • 9.16 总结
  • Halcon抛出异常日志
  • ZYNQ PS 端 UART 接收数据素材帧(初学者友好版)嵌入式编程 C语言 c++ 软件开发
  • Photoshop 2025 v26.0(PS2025)下载安装教程(含一键安装包下载)
  • 网络加速原理
  • 数据结构思维题选做(长期更新)
  • 政治笔记/错题
  • 【mysql】mysql客户端中文显示乱码
  • k8s系列--资源清单yml文件
  • k8s系列(14)--探针检测
  • k8s系列--控制器yml(15)
  • AT_abc200_e [ABC200E] Patisserie ABC 2 题解
  • 日总结 5
  • Linux驱动开发(1)概念、环境与代码框架 - 实践
  • 寻路算法
  • day 1
  • 学习问题日记-1
  • 记一次生产环境内存溢出记录
  • LeetCode:15.转轮数组 - 详解
  • Android 中获取稳定时间的方法 - 指南
  • 【精品资料鉴赏】RPA财务机器人应用(基于UiPath)教材配套课件 - 详解
  • CF2146 Codeforces Round 1052 (Div. 2) 游记
  • 如何安装 SQLPro Studio for Mac?v2024.21.dmg 文件安装步骤详解(附安装包)
  • 易路斩获招聘、薪酬两大重磅人力资源奖项,尽显行业领军风范!
  • Xilnx FPGA 资源结构
  • 2025年录音转文字技术解析与实用工具评测 - 指南
  • CF2147H Maxflow GCD Coloring 题解