BZOJ 4244: 邮戳拉力赛】的更多相关文章

手动博客搬家: 本文发表于20181211 18:01:21, 原地址https://blog.csdn.net/suncongbo/article/details/84957907 为了防止我的博客被数学占领(一半以上的博文和数学相关),我决定添加几道非数学题的题解. 目前数学题比例: \(\frac{15}{32}=0.46875\) 扯淡结束 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=4244 题意: 太长了自己看. 题解…
转化为括号序列DP 注意边界 #include<cstdio> #include<algorithm> #define rep(i,x,y) for (int i=x; i<=y; i++) using namespace std; long long F[3005][3005]; int main(){ int n,T; scanf("%d%d",&n,&T); rep(i,0,n) rep(j,0,n+1) F[i][j]=1ll<…
Description IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车两种,上行电车沿编号增大方向行驶,下行电车沿编号减小方向行驶.乘坐这两种电车的话,移动1站的距离需要T秒.换句话说,乘坐上行电车从车站i走到车站i+1需要T秒,称作下行电车从车站i走到车站i-1也需要T秒.你不能在0号车站乘坐下行电车,或在N+1号车站乘坐上行电车.由于电车发车的频率非常高,你可以无视等待电车消耗的时间. 每个车站…
题目描述 IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车两种,上行电车沿编号增大方向行驶,下行电车沿编号减小方向行驶.乘坐这两种电车的话,移动1站的距离需要T秒.换句话说,乘坐上行电车从车站i走到车站i+1需要T秒,称作下行电车从车站i走到车站i-1也需要T秒.你不能在0号车站乘坐下行电车,或在N+1号车站乘坐上行电车.由于电车发车的频率非常高,你可以无视等待电车消耗的时间. 每个车站设有上行电车的…
[BZOJ4244]邮戳拉力赛 Description IOI铁路是由N+2个站点构成的直线线路.这条线路的车站从某一端的车站开始顺次标号为0...N+1. 这条路线上行驶的电车分为上行电车和下行电车两种,上行电车沿编号增大方向行驶,下行电车沿编号减小方向行驶.乘坐这两种电车的话,移动1站的距离需要T秒.换句话说,乘坐上行电车从车站i走到车站i+1需要T秒,称作下行电车从车站i走到车站i-1也需要T秒.你不能在0号车站乘坐下行电车,或在N+1号车站乘坐上行电车.由于电车发车的频率非常高,你可以无…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4244 https://loj.ac/problem/2878 题解 挺妙的一道题. 一开始一直往最短路上面想,然后怎么想发现都没有用. 然后就又开始自闭了.最后又去拜读题解了.(今天怎么读了两次题解啊,没救了没救了 一条合法的路线一定是从 \(0\) 到 \(n + 1\) 的链上套了无数个环.每一个邮戳台至少被一个环经过. 经过邮戳台的方式有 \(4\) 类: 上行 -> 邮戳台 ->…
将各种情况绕环等看作括号序列,括号内的区域上下都需要累加答案,左右也是 f[i][j] 代表 前i个车站已经处理完的有j个左括号的最小权值 我们可以发现,更新的来源来自于 i-1, 和 i 将上 描述为L1,L2, 下描述为R1,R2,所以可以通过括号内的沿伸以及左右括号的答案更新状态 具体代码如下 #include<bits/stdc++.h> #define rep(i,x,y) for(register int i=x;i<=y;i++) #define dec(i,x,y) fo…
题意 https://loj.ac/problem/2878 思路 真的神仙题,想到就很好写,想不到就写不出来. 肯定只能一个一个邮戳按顺序分析.首先,将取一枚邮戳的路径分为四种: 上行 \(\rightarrow\) 邮戳台 \(\rightarrow\) 上行 简称路径 \((U,V)\) 上行 \(\rightarrow\) 邮戳台 \(\rightarrow\) 下行 简称路径 \((U,E)\) 下行 \(\rightarrow\) 邮戳台 \(\rightarrow\) 下行 简称路…
题意 题目链接 分析 如果走到了下行车站就一定会在前面的某个车站走回上行车站,可以看成是一对括号. 我们要求的就是 类似 代价最小的括号序列匹配问题,定义 f(i,j) 表示到 i 有 j 个左括号没有匹配. 转移时注意一个车站可以有多个左括号和右括号,如果选多个类似无限背包顺着倒着递推一遍即可. 复杂度 \(O(n^2)\) 代码 代码链接…
BZOJ 4236 JOIOJI f[i][0..2]表示前i个字符中′J′/′O′/′I′的个数 将二元组<f[i][0]−f[i][1],f[i][1]−f[i][2]>扔进map,记录一下最早出现的时间 对于每一个位置去map里面查一下就可以 时间复杂度O(nlogn) #include <map> #include <cstdio> #include <cstring> #include <iostream> #include <a…