设 fu,if_{u,i}fu,i 表示梦境 A 在 uuu 点,梦境 B 在 u+iu+iu+i 点的最大答案。
初始状态为 f1,0+Δ=0f_{1,0+\Delta}=0f1,0+Δ=0,目标状态为 fn,0+Δf_{n,0+\Delta}fn,0+Δ。其中 Δ\DeltaΔ 是实现中为了避免数组越界的常量。
整个 DP 转移就通过 bfs 实现。当前两个梦境在 x,yx,yx,y 时,分别对 xxx 和 yyy 的符合转移条件的邻接点进行转移并压入 bfs 队列。再考虑对 x,yx,yx,y 共同的邻接点进行转移同时压入 bfs 队列。
小样例和中样例都过了,大样例最后一个假了,比答案少了 200 多的样子。求救。