=###题目描述

跑跑卡丁车是时下一款流行的网络休闲游戏,你可以在这虚拟的世界里体验驾驶的乐趣。这款游戏的特别之处是你可以通过漂移来获得一种加速卡,用这种加速卡可以在有限的时间里提高你的速度。
为了使问题简单化,我们假设一个赛道分为L段,并且给你通过每段赛道的普通耗时Ai和用加速卡的耗时Bi。加速卡的获得机制是:普通行驶的情况下,每通过1段赛道,可以获得20%的能量(N2O).
能量集满后获得一个加速卡(同时能量清0).加速卡最多可以储存2个,也就是说当你有2个加速卡而能量再次集满,那么能量清零但得不到加速卡。一个加速卡只能维持一段赛道,游戏开始时没有加速卡。
问题是,跑完n圈最少用时为多少?

Input
每组输入数据有3行,第一行有2个整数L(L<100) , N(N<100)分别表示一圈赛道分为L段和有N圈赛道,接下来两行分别有L个整数Ai和Bi(Ai > Bi).
Output
对于每组输入数据,输出一个整数表示最少的用时.

Sample Input
18 1
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 8 8
Sample Output
145

对于sample这组数据,你可以先在普通情况下行驶前14段,这时你有2个加速卡以及80%的能量(N2O).在第15和16段用掉2个加速卡,通过第17段赛道后又可以得到一个加速卡,在第18段赛道使用.

子状态

首先考虑能量的处理。这里设20%的能量为1单位。由于最多有2张加速卡,所以最多有14单位的能量。
则可以得到子状态:dp[i][j]表示走了i个赛道,剩余j单位能量时所用的最小时间。

初始化和状态转移方程

首先考虑初始化的问题。
显然dp[0][0]=0。由于前5段赛道不可能用加速卡,所以这几段赛道只能用普通速度行驶。
对于不同的位置at和不同的剩余能量k,有不同的状态转移方程:

当0<=k<4时,
dp[at][k+1]=min(dp[at][k+1],dp[at-1][k]+a[j])。
当5<=k<=14时,
dp[at][k-5]=min(dp[at][k-5],dp[at-1][k]+b[j])。
dp[at][k+1]=min(dp[at][k+1],dp[at-1][k]+a[j])。
另外注意
dp[at][10]=min(dp[at][10],dp[at-1][14]+a[j]).

代码

#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
const int Size=101;
const int Maxn=17;
int a[Size],b[Size];
int dp[Size*Size][Maxn];    //dp[i][j]  ×ßÁËi¸öÈüµÀÓÐjÄÜÁ¿µÄ×îСÏûºÄʱ¼ä
int main() {int l,n,cnt,ans;while(scanf("%d %d",&l,&n)==2) {memset(dp,0x3f,sizeof(dp));ans=0x3f3f3f3f;dp[0][0]=0;for(int i=1; i<=l; i++) {scanf("%d",&a[i]);if(i<=5)    dp[i][i]=dp[i-1][i-1]+a[i]; //³õʼ»¯ }for(int i=1; i<=l; i++)scanf("%d",&b[i]);cnt=l*n;for(int i=0; i<n; i++) {        //dp for(int j=1; j<=l; j++) {if(!i && j<5)   continue;int at=i*l+j;for(int k=0; k<5; k++)dp[at][k+1]=min(dp[at][k+1],dp[at-1][k]+a[j]);for(int k=5; k<=14; k++) {dp[at][k-5]=min(dp[at][k-5],dp[at-1][k]+b[j]);dp[at][k+1]=min(dp[at][k+1],dp[at-1][k]+a[j]);}dp[at][10]=min(dp[at][10],dp[at-1][14]+a[j]);}}for(int i=0; i<15; i++)ans=min(ans,dp[cnt][i]);printf("%d\n",ans);}return 0;
}

HDU 1494 跑跑卡丁车 dp相关推荐

  1. HDU 1494 跑跑卡丁车

    点击打开链接 Problem Description 跑跑卡丁车是时下一款流行的网络休闲游戏,你可以在这虚拟的世界里体验驾驶的乐趣.这款游戏的特别之处是你可以通过漂移来获得一种 加速卡,用这种加速卡可 ...

  2. hdu 1494 跑跑卡丁车~

    哈哈  一次性ac哦!! 猥琐的气息无处不在~~~~ #include<iostream> using namespace std; const int inf=0x7fffffff; i ...

  3. hdu 1494(DP)

    跑跑卡丁车 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem De ...

  4. DP HDU 1494

    这道题一看就是动态规划-- 首先确定如何定义状态,定义dp[i][j]表示跑完第i段路,保留j段能量的花费时间的最小值. 那么我们的转移方程也比较好写,因为j最多可以到达14,所以第二维直接开到15就 ...

  5. hdu 1520 树形dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520 #include<cstdio> #include<cstring> # ...

  6. hdu 4035 可能性DP 成都网络游戏

    http://acm.hdu.edu.cn/showproblem.php?pid=4035 获得: 1.首先推断是不是树.事实上,所有的感觉身影,既看边数==算-1是不成立 2.有时候,我告诉孩子来 ...

  7. HDU 2836 (离散化DP+区间优化)

    Reference:http://www.cnblogs.com/wuyiqi/archive/2012/03/28/2420916.html 题目链接: http://acm.hdu.edu.cn/ ...

  8. hdu 5568(dp+大数模拟)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5568 官方题解: #include <cstdio> #include <cstri ...

  9. hdu 5464(简单dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5464 解题思路: 由于p很小,而ai很大,所以先把ai%p,由于ai可能有负数,所以ai=(ai%p+ ...

最新文章

  1. ffmpeg 解码卡死
  2. 开源企业IM免费企业即时通讯ENTBOOST V2014.177版本号正式公布
  3. Leetcode 205. 同构字符串 解题思路及C++实现
  4. 各种烧写文件格式简介-ELF Hex Bin axf
  5. 【内核模块auth_rpcgss】netns引用计数泄露导致容器弹性网卡残留
  6. 转载:JAVA获取时间戳,哪个更快
  7. win10系统崩溃怎么修复_系统崩溃怎么重装系统图文教程
  8. 如何使用SQL Server链接服务器查询Excel数据
  9. puppet报告系统 dashboard
  10. python logging打印终端_想知道Python如何在终端上打印表格吗?两行代码告诉你!
  11. canoe Demo版本申请流程
  12. coreseek添加新词库
  13. jupyter怎么安装jieba_记录 anaconda安装jieba
  14. sql插入不重复的数据
  15. 南航计算机考研专业课复习重点
  16. NoWritableEnvsDirError: No writeable envs directories configured.
  17. ionic入门教程第十一课-简要说明ion-list、ion-item完成列表页ion-infinite-scroll上拉加载ion-refresher下拉刷新
  18. 哄女朋友必备之微信自动发红包脚本(python+adb+androidviewclient)
  19. spa项目开发之tab页实现
  20. Win10管理员用户被禁用,无法登陆系统

热门文章

  1. hexo-theme-SakuraPlus主题文档
  2. java狼途折叠车,入门之选:Langtu 狼途 KY028 折叠自行车 20寸 8速
  3. Linux报:Can‘t open file for writing
  4. ES6学习笔记(四)
  5. openGL API glUniformMatrix4fv详解
  6. nslookup:查看IP地址
  7. 一只Java小菜鸟的面试之路
  8. 自动化测试的基础概念
  9. 关于主机的思维导图_计算机网络思维导图(零基础--思维导图详细版本及知识点)...
  10. 201671030128周琳 实验十四 团队项目评审课程学习总结