蓝桥杯(路径 动态规划 C++)

思路:

1、利用动态规划的思想。

2、用f[i]来记录从第一个点到第i个点的最短距离。

3、f[i]赋值分两种情况,第一种:f[i]为0的时候,也就是第一种刚到i点的情况,记录其距离为最小公倍数;第二种:f[i]已经有值了,比较新的点到其距离和之前点到其距离,取小的赋值。

4、最后输出f[2021]就是第一个点到第2021个点的最短距离。

cpp 复制代码
#include<iostream>
using namespace std;
int gcd(int x, int y)//辗转相除法,求最大公约数
{
	return !y ? x : gcd(y, x % y);
}
int main()
{
	int f[2030]={0};//记录到该点的最短距离
	for(int i=1;i<=2021;i++)
		for (int j = i + 1; j <= i + 21; j++)
		{
			if (j > 2021)
				break;
			if (f[j] == 0)
				f[j] = f[i] + i * j / gcd(i, j);
			else
				f[j] = min(f[j], f[i] + i * j / gcd(i, j));
		}
	cout << f[2021] << endl;
}
相关推荐
坚持学习前端日记19 小时前
个人小作坊适合的项目类型分析
程序人生·职场和发展·创业创新
HL_风神19 小时前
设计原则之单一职责原则
c++·学习·设计模式·单一职责原则
linzihahaha19 小时前
C++ 单例模式总结
开发语言·c++·单例模式
一个不知名程序员www19 小时前
算法学习入门--- set与map(C++)
c++·算法
天才测试猿20 小时前
自动化测试基础知识总结
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
小此方20 小时前
Re: 从零开始的C++ 入門(十)类和对象·最终篇下:类型转换、static成员、友元、匿名对象、内部类、拷贝编译优化
开发语言·c++·底层
王老师青少年编程20 小时前
2025年12月GESP(C++)考级真题及详细题解(汇总版)
c++·题解·真题·gesp·csp·信奥赛·考级
_OP_CHEN20 小时前
【算法基础篇】(四十二)数论之欧拉函数深度精讲:从互质到数论应用
c++·算法·蓝桥杯·数论·欧拉函数·算法竞赛·acm/icpc
CSDN_RTKLIB20 小时前
inline内联函数基础知识
开发语言·c++
Ralph_Y20 小时前
C++异常对象
开发语言·c++