#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b){
return (!b) ? a : gcd(b, a % b); //求最大公约数
}
int main(){
int count[2022] = {0};
for(int i = 1; i <= 2021; i++){
for(int j = i+1; j <= i + 21; j++){
if(j > 2021) break;
if(count[j] == 0) count[j] = count[i] + i * j / gcd(i, j);
else count[j] = min(count[j], count[i] + i * j / gcd(i, j)); //记录到J时最大的长度,要加上初始i带有的值
}
}
printf("%d", count[2021]);
return 0;
}
路径-蓝桥21-动态规划
最新推荐文章于 2024-07-18 19:36:20 发布