题目链接:https://www.rqnoj.cn/problem/169

题意:

  给出行驶1~10公里的费用(所有车一样),可以倒车,问行驶n公里的最小费用。

题解:

  大水题。。。 (=´ω`=)

  表示状态:

    dp[i] = min cost

    i:行驶了i公里

  找出答案:

    ans = dp[n]

  如何转移:

    now: dp[i]

    dp[i+j] = min dp[i] + c[j]

    枚举倒车行驶j公里

  边界条件:

    dp[0] = 0

    others = -1

AC Code:

  1. // state expression:
  2. // dp[i] = min cost
  3. // i: drove i km
  4. //
  5. // find the answer:
  6. // ans = dp[n]
  7. //
  8. // transferring:
  9. // now: dp[i]
  10. // dp[i+j] = min dp[i] + c[j]
  11. //
  12. // boundary:
  13. // dp[0] = 0
  14. // others = -1
  15. #include <iostream>
  16. #include <stdio.h>
  17. #include <string.h>
  18. #define MAX_N 105
  19. #define MAX_L 15
  20.  
  21. using namespace std;
  22.  
  23. int n;
  24. int c[MAX_L];
  25. int dp[MAX_N];
  26.  
  27. void read()
  28. {
  29. for(int i=;i<=;i++)
  30. {
  31. cin>>c[i];
  32. }
  33. cin>>n;
  34. }
  35.  
  36. void solve()
  37. {
  38. memset(dp,-,sizeof(dp));
  39. dp[]=;
  40. for(int i=;i<n;i++)
  41. {
  42. if(dp[i]!=-)
  43. {
  44. for(int j=;j<=;j++)
  45. {
  46. if(dp[i+j]==- || dp[i+j]>dp[i]+c[j])
  47. {
  48. dp[i+j]=dp[i]+c[j];
  49. }
  50. }
  51. }
  52. }
  53. }
  54.  
  55. void print()
  56. {
  57. cout<<dp[n]<<endl;
  58. }
  59.  
  60. int main()
  61. {
  62. read();
  63. solve();
  64. print();
  65. }

RQNOJ 169 最小乘车费用:水dp的更多相关文章

  1. 南邮oj[1401] 乘车费用

    Description lqp家离学校十分十分远,同时他又没有钱乘taxi.于是他不得不每天早早起床,匆匆赶到公交车站乘车到学校.众所周知CZ是个公交车十分发达的地方,但是CZ的公交车十分的奇怪,lq ...

  2. CodeForces 706C Hard problem (水DP)

    题意:对于给定的n个字符串,可以花费a[i]  将其倒序,问是否可以将其排成从大到小的字典序,且花费最小是多少. 析:很明显的水DP,如果不是水DP,我也不会做.... 这个就要二维,d[2][max ...

  3. Pie(求最小身高差,dp)

    Pie Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  4. 水dp第二天(背包有关)

    水dp第二天(背包有关) 标签: dp poj_3624 题意:裸的01背包 注意:这种题要注意两个问题,一个是要看清楚数组要开的范围大小,然后考虑需要空间优化吗,还有事用int还是long long ...

  5. 洛谷P4014 分配问题【最小/大费用流】题解+AC代码

    洛谷P4014 分配问题[最小/大费用流]题解+AC代码 题目描述 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为c ij. 试设计一个将 n 件工作分配给 n 个人做的 ...

  6. HDU 2084 数塔 (水DP)

    题意:.... 析:从下往上算即可,水DP. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #incl ...

  7. hdu 2571 命运(水DP)

    题意: M*N的grid,每个格上有一个整数. 小明从左上角(1,1)打算走到右下角(M,N). 每次可以向下走一格,或向右走一格,或向右走到当前所在列的倍数的列的位置上.即:若当前位置是(i,j), ...

  8. 最大流&最小割&费用流模版

    好久都没有搞博客了.想认真写又要准备文化课期末了. ISAP 流程: 原理就是dfs找增广路. 最基础的建反向边以便反悔就不说了. 但是记录一个dep(dis)表示层数,一开始BFS(从t开始,dis ...

  9. RQNOJ 622 最小重量机器设计问题:dp

    题目链接:https://www.rqnoj.cn/problem/622 题意: 一个机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得. w[i][j]是从供应商j处购得的部件i的重量, ...

随机推荐

  1. vuex 深入理解

    参考自:https://mp.weixin.qq.com/s?src=11&timestamp=1528275978&ver=922&signature=ZeHPZ2ZrLir ...

  2. Spring技术笔记(一)

    一.控制反转(IoC)&依赖注入(DI) 1.控制反转: 所谓的控制反转就是应用本身不负责依赖对象的创建及维护, 依赖对象的创建及维护是由外部容器负责的. 这样控制权就由应用转移到了外部容器, ...

  3. java位移操作

    http://www.cnblogs.com/kanego/archive/2011/03/21/1990617.html     java位移符号解释和举例

  4. 讲真,你是因为什么才买华为P20系列手机!

    华为P20系列手机上市两个半月发货600万台!600万台?!看到这个亮瞎我钛合金狗眼的数据,且容我掰着手指脚趾算一下,算了,还是容我毫不夸张的感叹一句吧:华为做手机不用桨,不需风,全靠“浪”……. 两 ...

  5. php nginx超时出错

    执行PHP操作大文件insert mysql数据库时,出现这个错误提示 The page you are looking for is temporarily unavailable.Please t ...

  6. 一套ui满足ios与android界面

    1.android 画布宽高720*1280的标准来切图生成xhdpi标准图,后自动生成mdpi.hdpi.xhdpi.xxhdpi四套图. 2.ios画布宽高640 x 1136的标准来切图生成xh ...

  7. 简述Java异常处理机制及其应用

    异常处理机制可以从两个方面来描述,当一个Java程序违反了Java语义规范时,JVM虚拟机就会抛出一个异常,比如说当遇到null时,会抛出一个NullPointerException,当遇到下标越界的 ...

  8. 在hibernate3中如何利用HQL语句查询出对象中的部分数据并且返回该对象?

    例如现在有一个Customer对象 public class Customer{ private Integer cid; private String cname; private Integer ...

  9. erlang的timer定时器浅析

    timer作为其计时器: erlang的计时器timer是通过一个唯一的timer进程实现的,该进程是一个gen_server,用户通过timer:send_after和timer:apply_aft ...

  10. WCP人员管理之添加人员

    1.用户管理页面 其中 : var url_formActionUser = "user/form.do";//增加.修改.查看URL 2. 通过 /form 路由, 转到 Use ...