当前位置: 首页 > news >正文

983. 最低票价 C++

class Solution {
public:int mincostTickets(vector<int>& days, vector<int>& costs) {// 状态定义: f[i] 表示 i 天及之后 旅行所需的最小花费int f[366]{};// 标注哪些天 出门for (int v: days) f[v] = 1;// 由于状态转移是逆向的 所以倒序 初始状态为 第365天,如果出门了,因为是最后一天所以买一张最便宜的通行证就行了 否则f[365]就是0f[365] = f[365] == 1 ? min(costs[0], min(costs[1], costs[2])) : 0;for (int i = 364; i > -1; --i) {if (f[i] > 0) {int d1 = i+1 < 366 ? costs[0] + f[i+1] : costs[0];int d7 = i+7 < 366 ? costs[1] + f[i+7] : costs[1];int d30 = i+30 < 366 ? costs[2] + f[i+30] : costs[2];// 如果在第i天出门,那么f[i] 要更新,买一天的票的成本加上下一天的最少费用,买七天的票的成本加上之后第8天的最少费用,买30天的票的成本加上第30天之后的最少费用,他们三者取最小值f[i] = min(d1, min(d7,d30));} else {//如果不出门 就是下一天的最小费用f[i] = f[i+1];}}return f[0];}
};

类似题目:

2140. 解决智力问题

http://www.lryc.cn/news/330312.html

相关文章:

  • 紫光展锐P7885核心板详细参数介绍_5G安卓智能模块开发方案
  • Keil MDK 5.37 及之后版本 安装 AC5(ARMCC) 编译器详细步骤
  • 速盾:cdn配置ssl
  • 代码随想录算法训练营 Day41 动态规划3
  • 面试题:反推B+树高度
  • 瑞吉外卖实战学习--11、分类管理的列表分页查询
  • 网络安全新视角:数据可视化的力量
  • Aurora8b10b(2)上板验证
  • 每天五分钟计算机视觉:使用神经网络完成人脸的特征点检测
  • 表白墙项目(JAVA实现)
  • openGauss 高级分析函数支持
  • 【Java面试题系列】基础篇
  • Ubuntu 23.04 安装es
  • gradle 7.0 + 配置
  • vue3的ref和reactive对比
  • 是否应该升级到ChatGPT 4.0?深度对比ChatGPT 3.5与4.0的差异
  • C++刷题篇——04找等值元素
  • 2024年最新服装erp软件排名!(建议收藏)
  • Radash一款JavaScript最新的实用工具库,Lodash的平替!
  • 使用node爬取视频网站里《龙珠》m3u8视频
  • 搜索与图论——Prim算法求最小生成树
  • sqlmap基础知识
  • 读《C Primer Plus》
  • 深入理解计算机系统 家庭作业 2.66
  • 【服务端】node.js详细的配置
  • 二、CentOS基础配置(1.网络与包管理)
  • Golang基础-5
  • Mysql数据库:故障分析与配置优化
  • 常见的图像分析算法
  • 朵米3.5客服系统源码,附带系统搭建教程