2025/10/16 总结
密文版
情况
- 时间:\(1.5h\)
- 预期:\(70\)
- 实际:\(70\)
知识点
- 贪心
思路
事实上这道题十分简单,考试时我想到了贪心,但写了几种贪心策略全挂了,所以就写了 \(O(n^2)\) 的暴力。这道题直接用两个栈来维护左括号的问号,当遇到右括号时,优先用左括号消除,实在不行就用问好,所以这样就行了。
括号序列
情况
- 时间:\(30min\)
- 预期:\(100\)
- 实际:\(100\)
知识点
- 状压 \(\text{dp}\)
思路
比较基础,看到范围后就想了状压,定义 \(f_i\) 是满足一些东西使用的最大前缀,然后我们转移即可,复杂度为 \(O(n2^n)\)。
法国
情况
- 时间:\(1.5h\)
- 预期:\(30\)
- 实际:\(0\)
知识点
- 根号分治
思路
考试时想了很久都没有思路,于是写了一个 \(O(n^2)\) 的暴力。但是我们可以发现由于每个属性是逐个递增的,所以当国王等级提升时,耗费的人数一定比前面多,所以我们可以用树状数组来维护卡牌在某个血量时的总攻击力,然后与增加后的国王血量做比较即可。
酒杯
情况
- 时间:\(1h\)
- 预期:\(40\)
- 实际:\(50\)
知识点
- 卷积
思路
直接运用排列组合,设 \(f_{i,j}\) 表示前 \(i\) 层运用 \(j\) 次全部填满的方案数,所以 \(f_{i,j}=\sum_{k=0}^j\frac{(2^{i-1})^{j-k}f_{i-1,k}}{(j-k)!}-f_{i-1,j}\),所以可以 \(O(nm^2)\) 的复杂度做出来。但是我们可以换一种写法 \(f_{a+b,i}=\sum_{j=0}^i(^i_j)(2^a)^jf_{b,j}f_{a,i-j}\) 所以可以用倍增预处理,然后利用卷积即可。

浙公网安备 33010602011771号