JDOJ 1506: VIJOS-P1421 更换轮胎

https://neooj.com/oldoj/problem.php?id=1506

Description

经过数周的期待,比赛终于正式开始。 不过天公不作美,今天的天气十分诡异,一会儿下雨,一会儿刮风。要知道,天气的变化对F1比赛的影响是巨大的,恶劣的天气甚至会严重干扰赛车手发挥。因此,各车队的总指挥都会在赛前根据赛道环境和天气的变化为车手制定一系列周密的计划。幸运的是,F1专用气象站拥有最顶尖的技术,能够精确测量出每一圈的天气情况,这大大降低了计划的风险。 在计划中,对轮胎的正确选择是至关重要的。每一场比赛,赛会都会提供给各赛车不同总类的轮胎(每种轮胎数量不限)。出发时,各赛车可根据需要使用任意一种轮胎。以后每过一圈,赛车可以选择不更换轮胎继续前进,或者进维修站更换任一种轮胎,但需要消耗一定的换胎时间。 通过测试,换胎时间和各种轮胎在各圈所消耗的单圈时间已精确测出,你能帮车队求出完成比赛的最短时间么?

Input

第一行是三个整数n,m,c(1< =n< =1000,1< =m< =1000,1< =c< =1000000),分别表示总圈数,轮胎种类数和换胎时间。接下来n行,每行m个整数,第i行第j个是tij(1< =tij< =1000000),表示在第i圈时第j种轮胎所消耗的单圈时间。

Output

一个整数s,表示最短的总时间。

Sample Input

【样例输入】 4 3 30 50 60 100 70 50 100 10 50 90 100 30 10

Sample Output

【样例输出】 170

HINT

30%的数据满足n< =15,m< =2

动态规划的一道题。(脑补了很多评价但是没有说出来)

输入没问题。

状态就设置dp[i][j]为第i圈第j种轮子的最小时间。

然后我们再考虑设置一个变量mint,存上一圈的最小值。(动归中要用,注意这里的最小值跟轮子没关系)

剩下的我不解释了,看代码把。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,m,c,mint,ans;
int t[][];
int dp[][];
int main()
{
scanf("%d%d%d",&n,&m,&c);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
scanf("%d",&t[i][j]);
memset(dp,0x3f,sizeof(dp));
mint=;
for(int i=;i<=m;i++)
dp[][i]=t[][i];
for(int i=;i<=n;i++)
{
mint=;
for(int k=;k<=m;k++)
mint=min(mint,dp[i-][k]);
for(int j=;j<=m;j++)
dp[i][j]=min(dp[i-][j],mint+c)+t[i][j];
}
ans=;
for(int i=;i<=m;i++)
ans=min(ans,dp[n][i]);
printf("%d",ans);
return ;
}

VIJOS-P1421 更换轮胎的更多相关文章

  1. Ping!

    我知道我很久没有更新这个博客了,所以特意来更新一下,骚扰一下各位订户.我有几年没有写过很具体跟技术相关的文章了,而跟职业发展相关的文章也半年没更新了,所以最近准备开始写写技术文章.在此之前,我要先完结 ...

  2. UML中类之间的几种关系

    类之间可能存在以下几种关系:关联(association).依赖(dependency).聚合(Aggregation,也有的称聚集).组合(Composition).泛化(generalizatio ...

  3. 途虎养车Tuhu商城系统开发

    途虎养车Tuhu商城系统开发,咨询:何经理152-2217-7508(微信同号)途虎养车商城小程序开发,途虎养车商城小程序平台开发,途虎养车商城小程序系统开发. 为什么能做得这么好,里面的门道确实不少 ...

  4. [UML] UML中类之间的几种关系

    类之间可能存在以下几种关系:关联(association).依赖(dependency).聚合(Aggregation,也有的称聚集).组合(Composition).泛化(generalizatio ...

  5. java面试(6)

    1  六大原则 详情参考:设计模式六大原则(转载). 2  UML类之间关系有几种?聚合和组合区别? 类之间可能存在以下几种关系:关联(association).依赖(dependency).聚合(A ...

  6. 类与类之间的关系UML模型图

    关联.依赖.聚合.组合.泛化.实现 类之间可能存在以下几种关系:关联(association).依赖(dependency).聚合(Aggregation,也有的称聚集).组合(Composition ...

  7. Linux运维工程师前景

    什么是Linux运维 如果我们是一辆高速行驶在高速公路上的汽车,那运维工程师就是司机兼维修工,这个司机可不简单,有时需要在高速行驶过程中更换轮胎.并根据道路情况换档位.当汽车速度越来越快时,汽车本身不 ...

  8. DDD 领域驱动设计之面向对象思想

    面向对象 面向对象是一种对世界理解和抽象的方法.那么对象是什么呢? 对象是对世界的理解和抽象,世界又代称为万物.理解世界是比较复杂的,但是世界又是由事物组成的. 正是这样的一种关系,认识事物是极其重要 ...

  9. 如何应对外包公司(文思海辉)的Python后端面试

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_151 最近春招如火如荼,我接触到的几位同学也纷纷去市场里试了试水,不得不说由于疫情的影响,导致目前中等水平的开发者择业有了些许困难 ...

随机推荐

  1. nginx 一键安装

    #!/bin/bash1. 关闭防火墙 和 selinux service iptables stopsetenforce 0 2. 判断是否有nginx服务netstat -ntlp |grep n ...

  2. 使用mybatis动态where字句方法

    上篇文章介绍了如何使用mybatis-generator生成实体类.Mapper接口代码,其中生成的Mapper接口代码是不带ByExample方法的.本篇文章将介绍如何使用mybatis-gener ...

  3. Ubuntu 14.04 安装mysql

    Ubuntu 14.04 没有mysql5.7的源,需要连接外部资源下载安装. wget http://dev.mysql.com/get/mysql-apt-config_0.8.1-1_all.d ...

  4. [SpingBoot guides系列翻译]Redis的消息订阅发布

    Redis的消息 部分参考链接 原文 CountDownLatch 概述 目的 这节讲的是用Redis来实现消息的发布和订阅,这里会使用Spring Data Redis来完成. 这里会用到两个东西, ...

  5. 深入理解Java8中Stream的实现原理

    Stream Pipelines 前面我们已经学会如何使用Stream API,用起来真的很爽,但简洁的方法下面似乎隐藏着无尽的秘密,如此强大的API是如何实现的呢?比如Pipeline是怎么执行的, ...

  6. JavaScript DOM 常用操作

    1.理解DOM: DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口. 怎么说,我从两个角度理解: 对于JavaScript ...

  7. 如何安装redis

    主要方式有四种:1.使用 Docker 安装.2.通过 Github 源码编译.3.直接安装 apt-get install(Ubuntu).yum install(RedHat) 或者 brew i ...

  8. Tensorflow源码解析2 -- 前后端连接的桥梁 - Session

    Session概述 1. Session是TensorFlow前后端连接的桥梁.用户利用session使得client能够与master的执行引擎建立连接,并通过session.run()来触发一次计 ...

  9. 什么是JavaBean?

    什么是JavaBean? 首先明确的是JavaBean是一种Java类,而且是一种特殊的.可重用的类. 必须具有无参数的构造器,所有的属性都是private的,通过提供setter和getter方法来 ...

  10. WinForm 程序在系统托盘显示

    前言 有些程序在关闭或最小化的时候会隐藏在系统托盘中,双击或右击会重新显示,winform实现其功能很简单,这边就简单的介绍下. 实现 在winform实现托盘使用notifyIcon控件,如果加菜单 ...