蓝桥杯——公交汽车(完全背包-动态规划)
作者:互联网
蓝桥杯——公交汽车(完全背包-动态规划)
整破防了,这题目倒是没那么难。可是我看答案都看了好久没看懂。后来发现原来我题目都没看懂。哭了,浪费了一个晚上。还是有带你迷糊。先记下来吧
这题真的要吐槽一下oj,题目都没讲清楚
下面这个图片是网上找的。应该说比较清楚。
其实意思是你在下车后可以选择坐几公里。几公里对应的是表格上面的收费,这里是再走几公里的收费,不包括前面你坐车的历程
其实类似于一个完全背包。公里数看为物品重量,总行程是背包容量。就是要背包装满,且price最小。
#include<iostream>
using namespace std;
int main()
{
const int INF =0x3f3f3f3f;
int dp[501];//行驶i公里的最小费用
int c[11];//行驶 i公里花费
int n;
for(int i=1;i<=10;i++)
cin>>c[i];
cin>>n;
dp[0]=0;
for(int i=1;i<=500;i++)
dp[i]=INF;
for(int i=1;i<=10;i++)
{
for(int j=1;j<=n;j++)
{
if(j>=i)
dp[j]=min(dp[j],dp[j-i]+c[i]);
}
}
cout<<dp[n]<<endl;
}
标签:公交,背包,题目,int,几公里,蓝桥,dp 来源: https://blog.csdn.net/m0_46285887/article/details/117428649