[BZOJ4244]邮戳拉力赛
Description
Input
Output
Sample Input
1 1 1 1
1 9 9 1
9 9 1 1
1 9 9 1
Sample Output
HINT

而且因为除了一条直线之外的全是环,所以如果存在$x$种第一种取法,就必定有$x$种第二种取法与之对应
而对于第三种和第四种取法,由于不会改变行走的方向,所以不用单独处理
这就可以对应到括号序列上来,第二种取法是左括号,第一种取法是右括号,这样对应的原因是你可以用二在后一在前来消除影响,但如果一在前就无法消除影响了,具体原因就是线路方向
然后还有需要注意的是,如果我们要用第三种取法,就要保证他之前有第二种取法的影响还未被消掉(你得保证此时的可以到达下行线)
所以我们设$f_{ij}$表示到$i$还剩$j$个左括号的时候最小代价是多少
按照上面四种情况转移即可
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,T;
int f[][];
int main() {
memset(f,,sizeof(f)),f[][]=;
scanf("%d%d",&n,&T);
for(int i=;i<=n;i++) {
int u,v,d,e;scanf("%d%d%d%d",&u,&v,&d,&e);
for(int j=;j<=n;j++) f[i-][j]+=j*T*;
//下->中->上
for(int j=;j<=n;j++) f[i][j]=min(f[i][j],f[i-][j-]+d+v);
//上->中->下
for(int j=;j<n;j++) f[i][j]=min(f[i][j],f[i-][j+]+u+e);
//上->中->上
for(int j=;j<=n;j++) f[i][j]=min(f[i][j],f[i-][j]+u+v);
//下->中->下
for(int j=;j<=n;j++) f[i][j]=min(f[i][j],f[i-][j]+d+e);
//消除上->中->下的影响
for(int j=;j<=n;j++) f[i][j]=min(f[i][j],f[i][j-]+d+v);
//消除下->中->上的影响
for(int j=n-;j;j--) f[i][j]=min(f[i][j],f[i][j+]+u+e);
}
printf("%d\n",f[n][]+(n+)*T);
return ;
}
[BZOJ4244]邮戳拉力赛的更多相关文章
- 【BZOJ4244】邮戳拉力赛 DP
[BZOJ4244]邮戳拉力赛 Description IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车 ...
- 【bzoj4244】邮戳拉力赛 背包dp
题目描述 IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...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 ...
- [LOJ#2878]. 「JOISC 2014 Day2」邮戳拉力赛[括号序列dp]
题意 题目链接 分析 如果走到了下行车站就一定会在前面的某个车站走回上行车站,可以看成是一对括号. 我们要求的就是 类似 代价最小的括号序列匹配问题,定义 f(i,j) 表示到 i 有 j 个左括号没 ...
- BZOJ 4244: 邮戳拉力赛
转化为括号序列DP 注意边界 #include<cstdio> #include<algorithm> #define rep(i,x,y) for (int i=x; i&l ...
- BZOJ 4244 邮戳拉力赛 (DP)
手动博客搬家: 本文发表于20181211 18:01:21, 原地址https://blog.csdn.net/suncongbo/article/details/84957907 为了防止我的博客 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- BZOJ 4236~4247 题解
BZOJ 4236 JOIOJI f[i][0..2]表示前i个字符中′J′/′O′/′I′的个数 将二元组<f[i][0]−f[i][1],f[i][1]−f[i][2]>扔进map,记 ...
随机推荐
- usb设备运行不正常的解决方法(转)
add by zhj:上午鼠标还用的好好的,下午就不能用了,插上之后提示“跟这台计算机连接的一个usb设备运行不正常”,尼玛,什么情况?我今天没安装软件啊,换了个USB接口也不行,在另一台电脑上试还是 ...
- python 线程,GIL 和 ctypes(转)
原文:http://zhuoqiang.me/python-thread-gil-and-ctypes.html GIL 与 Python 线程的纠葛 GIL 是什么东西?它对我们的 python 程 ...
- 抽象语法符号ASN.1(Abstract Syntax Notation One)
一.ASN.1 (Abstract Syntax Notation One) ASN.1包括两部分:数据描述语言(ISO 8824)和数据编码规则(ISO 8825).ASN.1的数据描述语言允许 ...
- 006-springboot2.0.4 配置log4j2,以及打印mybatis的sql
一.pom配置 普通项目 <!-- log4j2 --> <dependency> <groupId>org.apache.logging.log4j</gr ...
- PAT 1042 Shuffling Machine[难]
1042 Shuffling Machine (20)(20 分) Shuffling is a procedure used to randomize a deck of playing cards ...
- 使用 Mirantis Fuel9.0 部署 OpenStack M
Mirantis Fuel 9 可以实现部署OpenStack M版本web化,管理员只需简单规划就能部署复杂的openstack 组件 安装Fuel9.0 下载官方IOS镜像 https://www ...
- linux命令:linux文件处理命令
命令格式 : 命令 [-选项] [参数] 例:ls -la /etc 说明:1)个别命令使用不遵循此格式,[]代表可选 2)当有多个选项时,可以写在一起 3)-a等于 --all,调用简化选项用 ...
- windows分区
- Maven的常用功能
一.jar包管理(仓库) 最佳实践: 1:排除依赖 pom中依赖了某个第三方API,此API又依赖其它API,有可能出问题.(必须申明排除该第三方依赖) Spring-core又隐式的依赖了commo ...
- tensorflow显存管理
在运行上面的blog的Tensorflow小程序的时候程序我们会遇到一个问题,当然这个问题不影响我们实际的结果计算,但是会给同样使用这台计算机的人带来麻烦,程序会自动调用所有能调用到的资源,并且全占满 ...