首页 > TAG信息列表 > CF559E
CF559E Gerald and Path(DP)
CF559E Gerald and Path 设 \(dp(i,p)\) 表示完成前 \(i\) 条线段的覆盖,最右端位于 \(p\) 点的最大收益。 转移?向下一条线段转移时加上他们中间的距离?发现这样没有办法统计 \(p\) 点以前的空位了! \(\color{yellow}{\bigstar\texttt{Trick}}\):如果出现上面没有办法统计 \(p\) 点以[cf559E]Gerald and Path
将所有线段的端点(即$a_{i}$和$a_{i}\pm l_{i}$)离散,并按照$a_{i}$从小到大排序 定义$f_{i,,j}$表示前$i$条线段在位置$j$之前最多能覆盖的长度(默认覆盖到$j$,允许覆盖到$j$之后,但该部分不计入覆盖的长度),转移对第$i$条线段的方向分类讨论: (关于"默认覆盖到$j$",完整的描述即默认$[a_{i}CF559E Gerald and Path
Link 首先把线段按中心点排序。 设\(f_{i,j,0/1}\)表示考虑前\(i\)个线段,右端点最右的是\(j\),\(j\)的朝向是左/右的答案。 假如我们已经知道了\(f_{i,j,f1}\),考虑如何转移到其他状态。 枚举\(k\)表示考虑到前\(k\)条线段及其朝向,用\(p,o,mx\)表示\([i+1,k]\)这些线段中右端点最CF559E Gerald and Path
题面:https://codeforces.com/contest/559/problem/E https://www.luogu.com.cn/problem/CF559E 题意: 有\(n\)条线段。 每条线段给定其中一端的位置及长度。 求所有线段覆盖的最大长度。 n \(\leq\) 100。 题解: O(\(n^4\)):自己去CF上看 首先考虑如果已经确定每条线段选左边还是右