题目链接

题意:

题解:
cwbc讲课因为时间原因没讲到的一道题,结果正睿rxd的模拟赛
感觉还是很神仙的,我感觉我好像不太能想出来这个题啊。

一道神仙dp题。我们发现,最后答案一定需要从0到n+1,一定要用这(n+1)T的时间。我们考虑如果我们到了下行的某个位置,那么他一定会再在某个位置再回到上行,那么除了我们从上行的0走到n+1的,其他的构成了若干个环,这些环在后面的某个位置从上行切换到下行,再在前面的某个位置从下行切换到上行。我们遇到一个下行到上行的切换看作一个左括号,一个上行到下行的切换看作一个右括号,那么,一个合法的走法一定是一个合法的括号序列。由于下行到上行之前会先往编号小的点走,所以我们设dp[i][j]为前i个位置,当前遇到的下行到上行的切花比上行到下行的切换次数多了j次的最小路径长度。我们可以发现,其实转移只有6种,一种是在当前点的上行位置拿邮戳再回来,从下行拿邮戳再回来,从上行拿邮戳再到下行,从下行拿邮戳再到上行,从上一个位置到当前这个位置的上行,再拿邮戳回上行,从上一个位置到当前位置的下行再拿邮戳回下行。后两种里面要加一个2T*j,因为每一个没完成环都会在当前位置在上行和下行各贡献一次答案。最后答案别忘了加上(n+1)*T。

代码:

#include <bits/stdc++.h>
using namespace std;int n,T,u,v,d,e;
long long dp[3010][3010];
int main()
{scanf("%d%d",&n,&T);memset(dp,0x3f,sizeof(dp));dp[0][0]=0;for(int i=1;i<=n;i++){scanf("%d%d%d%d",&u,&v,&d,&e);for(int j=1;j<=n;++j)dp[i-1][j]+=j*T*2;for(int j=1;j<=n;++j)dp[i][j]=min(dp[i][j],dp[i-1][j-1]+d+v);for(int j=0;j<n;++j)dp[i][j]=min(dp[i][j],dp[i-1][j+1]+u+e);for(int j=0;j<=n;++j)dp[i][j]=min(dp[i][j],dp[i-1][j]+u+v);for(int j=1;j<=n;++j)dp[i][j]=min(dp[i][j],dp[i-1][j]+d+e);for(int j=1;j<=n;++j)dp[i][j]=min(dp[i][j],dp[i][j-1]+d+v);for(int j=n;j>=1;--j)dp[i][j]=min(dp[i][j],dp[i][j+1]+u+e);}printf("%lld\n",dp[n][0]+(long long)(n+1)*T);return 0;
}

BZOJ4244 邮戳拉力赛 dp相关推荐

  1. bzoj4244: 邮戳拉力赛 dp

    Description IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车两种,上行电车沿编号增大方向行驶 ...

  2. 【BZOJ4244】邮戳拉力赛 DP

    [BZOJ4244]邮戳拉力赛 Description IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车 ...

  3. [BZOJ4244]邮戳拉力赛

    Description IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车两种,上行电车沿编号增大方向行驶 ...

  4. BZOJ 4244 邮戳拉力赛 (DP)

    手动博客搬家: 本文发表于20181211 18:01:21, 原地址https://blog.csdn.net/suncongbo/article/details/84957907 为了防止我的博客 ...

  5. java越野拉力赛_BZOJ 4244 邮戳拉力赛 (DP)

    为了防止我的博客被数学占领(一半以上的博文和数学相关),我决定添加几道非数学题的题解. 目前数学题比例: \(\frac{15}{32}=0.46875\) 扯淡结束 题意: 太长了自己看. 题解: ...

  6. [BZOJ 4244] 邮戳拉力赛

    BZOJ传送门 Description IOI铁路是由N+2N+2N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+10...N+10...N+1. 这条路线上行驶的电 ...

  7. bzoj4244 loj2878. 「JOISC 2014 Day2」邮戳拉力赛 括号序列+背包

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4244 https://loj.ac/problem/2878 题解 挺妙的一道题. 一开始一直 ...

  8. JOISC 2014 邮戳拉力赛(基础DP)

    题意 https://loj.ac/problem/2878 思路 真的神仙题,想到就很好写,想不到就写不出来. 肯定只能一个一个邮戳按顺序分析.首先,将取一枚邮戳的路径分为四种: 上行 \(\rig ...

  9. [DP] BZOJ 4244 邮戳拉力赛

    DP方程有点难懂 晕 #include<cstdio> #include<cstdlib> #include<cstring> #include<algori ...

最新文章

  1. LeetCode刷题-3
  2. Sysbench压测
  3. s3c2440第一个裸奔程序——跑马灯(转)
  4. ie 调用java的时候报错,关于java的applet在网页中打开的时候出错
  5. php访问mysql数据库实验报告,php访问mysql数据库
  6. centos7 nginx php5.4,详解CentOS7.0下Nginx+PHP5.4+MySQL5.5+Memcached+Redis的架构部署
  7. winForm添加图标
  8. NUC1474 Ants【水题】
  9. 改变php默认目录结构,ThinkPHP中自定义目录结构的设置方法_PHP
  10. 0基础,如何快速学习自媒体,详细教程
  11. 微信支付宝支付开发文档
  12. 十九个国内外主流的三维GIS软件
  13. v4手游服务器维护,v4手游每日必做事项分享
  14. RFID危化品管理系统解决方案
  15. python数据分析学习day08:柱状图
  16. VB.NET 使用 OleDb 操作 Access 数据库(来自 MSDN)
  17. linux与pe到移动硬盘,将PE放入移动硬盘的简单方法几点疑问-已解决(转自深
  18. NQI一站式服务平台建设,质量基础设施系统开发方案
  19. 网络云存储技术Windows server 2012 (项目十三 NFS共享的配置与管理)
  20. Fedora添加国内源

热门文章

  1. (摘录)MD5算法研究与破解
  2. 索尼神话破灭:急功近利 丧失激情 挑战精神消失 创新能力衰退
  3. Laravel+cms
  4. 程序员搞笑对联_程序员的春节对联,拿好不谢!
  5. commons-pool2和commons-pool对象池使用
  6. 优秀web前端工程师必备_优秀的Web工程师的技能和素质
  7. 不懂编程的运维人员到底还能走多远?
  8. 【经验】安全岗实习生应聘
  9. 【动态内存管理】动态内存函数简析
  10. 国产操作系统常见的问题