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\)

posted @ 2025-07-14 21:47  _KidA  阅读(6)  评论(0)    收藏  举报