好消息:签到题首杀。
坏消息:只会签到题。
\(\text{contest id: 726}\)
A. 随机
\(\text{problem id: 2307}\)
B. 回文路径
\(\text{problem id: 3772}\)
成功首杀。
看到回文,首先想到可以从起点和终点同时开始跳,这样就有一个四维 \(\text{dp}\),即 \(dp_{i,j,k,l}\) 表示从起点开始跳的点当前在坐标 \((i,j)\),另一个点在 \((k,l)\),但很显然时间爆表。
注意到只可以往下或右跳,那么一旦我们知道当前跳的步数 \(stp\) 以及所在的行数 \(i\),自然也可以求出所在的列数 \(j\)。
这时候就简化为一个三维 \(\text{dp}\),\(dp_{i,j,stp}\) 表示第一个点在 \(i\) 行,第二个点在 \(j\) 行,它们跳了 \(stp\) 步。
则有:
\(dp_{i,j,stp}=dp_{i-1,j,stp-1}+dp_{i,j+1,stp-1}+dp_{i-1,j+1,stp-1}+dp_{i,j,stp-1}\)。
接着发现第三维 \(stp\) 永远只和 \(stp-1\) 有关系,那么滚动数组压掉一维,结束。
C. 砍木头
\(\text{problem id: 3782}\)
D. 排队
\(\text{problem id: 3783}\)
标签:校内,text,stp,题解,problem,id,dp,2.25 From: https://www.cnblogs.com/yizhixiaoyun/p/17154042.html