BZOJ4244 邮戳拉力赛 dp
题目链接
题意:
题解:
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相关推荐
- bzoj4244: 邮戳拉力赛 dp
Description IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车两种,上行电车沿编号增大方向行驶 ...
- 【BZOJ4244】邮戳拉力赛 DP
[BZOJ4244]邮戳拉力赛 Description IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车 ...
- [BZOJ4244]邮戳拉力赛
Description IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车两种,上行电车沿编号增大方向行驶 ...
- BZOJ 4244 邮戳拉力赛 (DP)
手动博客搬家: 本文发表于20181211 18:01:21, 原地址https://blog.csdn.net/suncongbo/article/details/84957907 为了防止我的博客 ...
- java越野拉力赛_BZOJ 4244 邮戳拉力赛 (DP)
为了防止我的博客被数学占领(一半以上的博文和数学相关),我决定添加几道非数学题的题解. 目前数学题比例: \(\frac{15}{32}=0.46875\) 扯淡结束 题意: 太长了自己看. 题解: ...
- [BZOJ 4244] 邮戳拉力赛
BZOJ传送门 Description IOI铁路是由N+2N+2N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+10...N+10...N+1. 这条路线上行驶的电 ...
- bzoj4244 loj2878. 「JOISC 2014 Day2」邮戳拉力赛 括号序列+背包
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4244 https://loj.ac/problem/2878 题解 挺妙的一道题. 一开始一直 ...
- JOISC 2014 邮戳拉力赛(基础DP)
题意 https://loj.ac/problem/2878 思路 真的神仙题,想到就很好写,想不到就写不出来. 肯定只能一个一个邮戳按顺序分析.首先,将取一枚邮戳的路径分为四种: 上行 \(\rig ...
- [DP] BZOJ 4244 邮戳拉力赛
DP方程有点难懂 晕 #include<cstdio> #include<cstdlib> #include<cstring> #include<algori ...
最新文章
- LeetCode刷题-3
- Sysbench压测
- s3c2440第一个裸奔程序——跑马灯(转)
- ie 调用java的时候报错,关于java的applet在网页中打开的时候出错
- php访问mysql数据库实验报告,php访问mysql数据库
- centos7 nginx php5.4,详解CentOS7.0下Nginx+PHP5.4+MySQL5.5+Memcached+Redis的架构部署
- winForm添加图标
- NUC1474 Ants【水题】
- 改变php默认目录结构,ThinkPHP中自定义目录结构的设置方法_PHP
- 0基础,如何快速学习自媒体,详细教程
- 微信支付宝支付开发文档
- 十九个国内外主流的三维GIS软件
- v4手游服务器维护,v4手游每日必做事项分享
- RFID危化品管理系统解决方案
- python数据分析学习day08:柱状图
- VB.NET 使用 OleDb 操作 Access 数据库(来自 MSDN)
- linux与pe到移动硬盘,将PE放入移动硬盘的简单方法几点疑问-已解决(转自深
- NQI一站式服务平台建设,质量基础设施系统开发方案
- 网络云存储技术Windows server 2012 (项目十三 NFS共享的配置与管理)
- Fedora添加国内源