题解
2024-06-06 12:58:36
发布于:广东
12阅读
0回复
0点赞
纯手工,绝对没有用chat
#include <iostream>
#include <cstdio>
#include <vector>
#include <memory.h>// 导入头文件
#define N 100000
std::vector<int>distance(11),cost(N + 1);
int getMinCost(int dis){
for (int i=1;i<=dis;++i) {
for (int j=1;j<=10;++j) {
if (i>=j) {
cost[i]=std::min(cost[i],cost[i-j]+distance[j]);// 更新最小值
}
}
}
return cost[dis];// 返回最短距离
}
int main() {
for (int i=0;i<=N;i++) {
cost[i] = 1e9;// 将cost设置为最大值
}
cost[0]=0;// 没有路程就没有费用
for (int i=1;i<=10;++i) {
std::cin>>distance[i];// 输入每个距离的费用
}
int dis;
std::cin>>dis;
std::cout<<getMinCost(dis)<<std::endl;// 输出最小花费
return 0;
}
这里空空如也
有帮助,赞一个