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

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

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

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

}

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值