7月14日模拟赛总结
here.
T1 令 \(dp_{i,j}\) 表示 前 \(i\) 个数 且结尾数字为 \(j\) 时的最小删数个数。
初始 \(dp_{0,a_i 末尾数字}=0\),答案 \(\min\{dp_{n,i}\}\)。
转移:删的情况,\(dp_{i,j}=\min(dp_{i,j},dp_{i-1,j}+1)\);不删的情况,\(dp_{i,a_i 末尾数字}=\min(dp_{i,a_i 末尾数字},dp_{i-1,j})\)。
T2 令 \(dp_{i,j,k}\) 表示现在经过了 \(i\) 个地点,其中 \(j\) 个是花,且还有 \(k\) 斗酒时的方案数。
初始 \(dp_{0,0,2}=1\)。答案 \(dp_{n+m-1,m-1,1}\)(这么设计是因为最终的条件不好处理,于是退一步输出答案也可以)。
转移:经过 花:\(dp_{i,j}=dp_{i,j}+dp_{i-1,j-1,k+1}\);经过 店:\(dp_{i,i-j,k}=dp_{i,i-j,k}+dp_{i-1,i-j,k/2}\)(注意这里转移的次数必须是店的个数而非花的个数,也就是说循环不能枚举花而必须枚举店)。
T3 分情况讨论一下。
令 \(dp_i\) 表示前 \(i\) 列的方案数。
-
竖着放 I 型:\(dp_{i-1} \to dp_i\)。
-
横着放 I 型:\(dp_{i-2} \to dp_i\)。
-
放 L 型:至少占三列,后面每个都能取到,\(dp_{i-3}+dp_{i-4}+...+dp_{0} \to dp_i\)。这个要算两次(因为 L 型可以旋转)。
所以 \(dp_n=\sum^{n-1}_{i=0} dp_i+\sum^{n-3}_{i=0} dp_i=dp_{n-1}+dp_{n-2}+2 \times \sum^{n-3}_{i=0} dp_i\)。
代入 \(n-1\) 得,\(dp_{n-1}=\sum^{n-2}_{i=0} dp_i+\sum^{n-4}_{i=0} dp_i=dp_{n-2}+dp_{n-3}+2 \times \sum^{n-4}_{i=0} dp_i\)。
两式相减得,\(dp_n-dp_{n-1}=dp_{n-1}+dp_{n-3} \to dp_n=2 \times dp_{n-1}+dp_{n-3}\)。
然后转移即可。
T4 反而是全场最无脑的。多重背包,后面的 \(m\) 个直接 01 背包即可。
成绩:0+0+40+0=40,rk2。炸了。
总结:
-
dp 状态把能包含的内容都包含进去。
-
代入法消掉 \(\sum\)。

浙公网安备 33010602011771号