13
https://www.luogu.com.cn/problem/P14538
这题我为什么不会啊???
记得对分治式交互题的决策点 DP!!!
https://www.luogu.com.cn/problem/CF1270G
简直不是题。
题目给出的限制等价于 \(1\le i-a_i\le n\)。所以考虑从 \(i\) 向 \(i-a_i\) 连边,会形成一个内向基环森林,这上面的任意一个环都对应一个和为 \(0\) 的子集。
https://www.luogu.com.cn/problem/P14569
感觉是个很典的套路,但是我怎么不会啊。
考虑原问题怎么做,从低位往高位贪心,能合并就合并,这是对的。
考虑把这个过程压进状态,设 \(dp_{i,j,k,0/1}\) 表示 前 \(i\) 个数在合并之后还剩下 \(j\) 个,最后一个数是 \(k\),有没有超过数位限制 的答案之和。然后还要记个 \(f\) 表示方案数。这样暴力做是 \(O(n^2B^2)\) 的,可以获得 52 分的好成绩。我考场上止步于此了。
可以感受到 \(j\) 这一维是比较浪费的。在 \(i,k,0/1\) 都固定时,不同的 \(j\) 的转移形式是一样的,只是贡献系数会带个 \(B^j\)。所以考虑把 \(j\) 扔掉,然后把 \(f\) 的定义改成方案数乘贡献系数的和,就变成 \(O(nB^2)\) 了。转移式子一大坨但是都可以前缀和优化,复杂度 \(O(nB)\)。
https://www.luogu.com.cn/problem/CF2165F
我们要求出所有极短的 21435 型子序列。
枚举 2 的位置,然后 1 一定是 2 右边第一个比它小的。所以我们只需对于每个 3,求出极短的 435 型子序列。
这样的子序列看起来很多,但是只有 \(O(n)\) 个,并且对于每个 3 只有至多一个!这是因为,5 一定是 3 右边第一个比它大的。
证明:设 3 右边第二个比它大的叫做 5'。如果 5'<5 那显然毫无意义。如果 5'>5,那么 5' 就是 5 右边第一个比它大的,所以可以把 3 移动到 5 那里去。类似地可以证明 3 右边任意一个比它大的都不优。
然后就做完了。整个过程都是二维偏序,复杂度 \(O(n\log n)\)。
https://www.luogu.com.cn/problem/P14364
考虑 dp,\(dp_{i,j,k}\) 表示前 \(i\) 天录用了 \(j\) 个人,前 \(i\) 个人里共有 \(k\) 个的 \(c\le i-j\),并且只考虑这 \(k\) 个人的位置的方案数。剩下的 \(i-k\) 个位置我们暂时用“问号”填充。转移的时候枚举这一天是否会录用人,如果没录用的话就考虑一下用 \(c=i-j+1\) 的人去填充“问号”。复杂度 \(O(n^3)\)。
这种“用问号填充”的思想之前见过,也自己做出来过题目,为什么考场上不会呢?

浙公网安备 33010602011771号