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}\) 所以可以用倍增预处理,然后利用卷积即可。

posted @ 2025-10-17 15:26  小熊涛涛  阅读(3)  评论(0)    收藏  举报