某岛

… : "…アッカリ~ン . .. . " .. .
December 13, 2022

AtCoder Beginner Contest 281

C

经典两个堆。

D

背包。

E.

经典 Tire 树 DP。

G.

组合 dp。比赛写的是:
dp[i][j][k]:前 i 层,一共用了 j 个顶点,且第 i 层使用了 k 个。
转移 O(n) 一共 O(n4) 结果发现没办法简单的用前缀和降低复杂度。

正确的方法是简化状态!不考虑分了几层,直接用已经考察过的顶点数划分阶段:
dp[i][j]:一共用了 i 个顶点,且最外层使用了 j 个。

Ex.

构造生成函数,贴多项式模板。