其他分享
首页 > 其他分享> > 蓝桥杯——公交汽车(完全背包-动态规划)

蓝桥杯——公交汽车(完全背包-动态规划)

作者:互联网

蓝桥杯——公交汽车(完全背包-动态规划)

整破防了,这题目倒是没那么难。可是我看答案都看了好久没看懂。后来发现原来我题目都没看懂。哭了,浪费了一个晚上。还是有带你迷糊。先记下来吧

在这里插入图片描述
这题真的要吐槽一下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