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

【蓝桥杯】真题 路径(数论+dp)

在这里插入图片描述

思路

求最小公倍数LCM问题很好求,这里看似是求图最短路径,实际上由于只有[i,i+21]之间存在路径,所以用线性dp效率更高,当然用bfs,dijstra,floyed也可,毕竟是填空题。

code

def gcd(a,b):
    if a < b:
        a,b = b,a
    if b != 0:
        return gcd(b,a%b)
    if b == 0:
        return a

def lcm(a,b):
    return a*b//gcd(a,b)

dp = [float('inf') for i in range(2022)]
dp[1] = 0
for i in range(1,2022):
    for j in range(1,22):
        if i+j > 2021:break
        dp[i+j] = min(dp[i+j], dp[i]+lcm(i,i+j))
print(dp[2021])

http://www.kler.cn/a/611421.html

相关文章:

  • MATLAB 编写的函数或算法生成可供 C++ 调用的库或组件
  • 热门面试题第12天|Leetcode 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度 (内含热门面试题)
  • 基于硅基流动平台API构建定制化AI服务的实践指南
  • 若依框架二次开发——若依集成 JSEncrypt 实现密码加密传输方式
  • Linux程序性能分析
  • CSS3学习教程,从入门到精通,CSS3 图像属性知识点及案例代码(16)
  • 自动化测试selenium(Java版)
  • 深度学习 Note.1
  • 使用Debezium采集Postgresql数据
  • Ubuntu 更换阿里云镜像源图文详细教程
  • Flink基础简介和安装部署
  • 2025.03.23【前沿工具】| CellPhoneDB:基因网络分析与可视化的利器
  • 计算机视觉的多模态模型:开启感知智能的新篇章
  • 《新华网》主流媒体理论论文发表注意事项,有稿费!
  • 施磊老师高级c++(七)
  • 分布式爬虫框架Scrapy-Redis实战指南
  • XYCTF2024 ezSerialize WP
  • 信息安全的数学本质与工程实践
  • SQL中体会多对多
  • Go 语言 fmt 模块的完整方法详解及示例