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

洛谷 P12364 [蓝桥杯 2022 省 Python B] 寻找整数 C++题解

题解:洛谷 P12364 [蓝桥杯 2022 省 Python B] 寻找整数

题目传送门

一、题面描述

找到一个正整数n nn0 ≤ n ≤ 10 17 0 \leq n \leq 10^{17}0n1017),要求满足题目表格中2 2249 4949的余数,如下图:

二、思路

这题其实有一个很简单的方法——枚举。但是纯粹暴力绝对会超时,于是不难想到,可以使用逐步满足法。

只要一直加目前枚举到所有数的最小公倍数,直到满足下一个数的余数。

之所以加最小公倍数,是因为它可以整除前面的所有数,保持前面的余数不变。
即:
now ≡ 0 ( m o d x − 1 , x − 2 , … , 2 ) \text{now} \equiv 0 \pmod{x-1, x-2, \ldots, 2}now0(modx1,x2,,2)

所以,先枚举除数x xx,接着一直加前面所有数的最小公倍数,一旦满足下一个除数的余数就跳出,然后再更新最小公倍数now \text{now}now,最后输出。

三、代码

#include<bits/stdc++.h>//万能头文件#defineintlonglong//宏定义:快速把int转换成long longusingnamespacestd;intmod[51]={0,0,1,2,1,4,5,4,1,2,9,0,5,10,11,14,9,0,11,18,9,11,11,15,17,9,23,20,25,16,29,27,25,11,17,4,29,22,37,23,9,1,11,11,33,29,15,5,41,46};//mod 数组存储余数intres,now=1;//结果,当前最小公倍数inlineintlcm(intx,inty){//最小公倍数函数(两数之积/最大公因数)returnx*y/__gcd(x,y);//__gcd为c++库函数}signedmain(){//signed=int(main函数必须为int类型)for(intx=2;x<=49;x++){//枚举除数while(mod[x]!=res%x){//一直加之前的最小公倍数,直到符合下一个条件res+=now;}now=lcm(now,x);//更新最小公倍数}printf("%lld",res);//输出答案return0;}

时间复杂度

这段代码时间复杂度接近O ( n ) O(n)O(n),而最坏情况是每一个内层循环x xx次,时间复杂度约为O ( n 2 ) O(n^2)O(n2),不过由于正常数字余数分布随机,实际会更快。

答案

当然,这题有固定答案:2022040920220409 20220409202204092022040920220409

所以,直接输出也行:
但是,我们不应该提倡这种行为,应该认真地做代码

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"2022040920220409";//答案return0;}
http://www.jsqmd.com/news/935884/

相关文章:

  • Phi-3-mini-128k-instruct-GGUF与ONNX Runtime集成:跨平台部署最佳实践
  • 5分钟掌握ParsecVDisplay:Windows虚拟显示器终极解决方案
  • 从AH到ESP再到NAT-T:图解IPSec协议如何一步步“适应”NAT网络
  • 自制智能USB转TTL串口模块V2:动态波特率同步与数据流向指示
  • Stanford CS336:从零构建语言模型,6周带你写出自己的 LLM
  • 技术美术进阶:深度解析Niagara插件架构与数据驱动设计理念
  • 基于W5100S硬件协议栈与RP2040的嵌入式Web服务器实现指南
  • 本地视频怎么去水印:全场景实操方法与优质工具汇总
  • java的基础语法--JDBC
  • 手机直连卫星!又一批卫星互联网技术试验卫星升空
  • 基于Arduino与蓝牙的智能家居控制系统开发实践
  • 基于Arduino与手势传感器的复古电视风格数字相框DIY全攻略
  • 抖音批量下载效率革命:douyin-downloader如何让内容采集效率提升300%
  • 面试反问面试官 10 句高情商话术|加分不踩雷
  • DIY电子维修光学支架:低成本打造稳定显微镜与放大镜工作台
  • 终极音频解密指南:快速将QQ音乐加密文件转换为MP3/FLAC
  • 基于树莓派的物联网嵌入式游戏系统开发全流程解析
  • 如何永久保存微信聊天记录?WeChatMsg完整指南帮你轻松实现
  • Ubuntu 18.04太老了?别急着升级系统,教你安装VS Code 1.85.2稳定版(附旧版本.deb包下载指引)
  • STM32H743 UART接收优化方案:DMA双缓冲+IDLE空闲中断自动帧识别
  • AI泡沫后回归理性:知识图谱与本体论如何重塑AI根基
  • OpenCore Legacy Patcher终极指南:让老款Mac焕发第二春的完整解决方案
  • Windows Defender Remover:如何彻底移除系统安全组件并提升30%性能
  • FPGA+DDS信号发生器硬件设计全流程:从原理图到PCB实战
  • 3步实现SketchUp到3D打印的完美转换:STL插件完全指南
  • 量子噪声建模:挑战、框架与应用实践
  • 微软SEAL开源:同态加密实战入门与隐私计算应用解析
  • 风险调整软件:从代码挖掘到合规证明的五大核心能力
  • 达沙替尼100mg每日治慢粒及急淋,胸腔积液发生率高,严重出血风险者禁用
  • 抖音视频怎么在线解析提取无水印全覆盖操作步骤与合规使用规范