双倍经验?
我写得挺傻,跑得超慢(
进行了大量预处理。
考虑处理出以下值以便 DP: - 设 validi,S 表示能否在第 i 天吃在集合 S 内的菠萝包。 - 设 vali,S 表示在第 i 天吃在集合 S 内的菠萝包对答案的贡献。
这两个东西可以 O(n22n) 预处理。
设 fi,S 表示前 i 天总共吃了集合 S 内的菠萝包的答案。
DP 时枚举 i,S,枚举新吃的组合,即可转移。
由于没有限定吃的天数,可以在转移的同时更新答案。
代码:
1 |
|
双倍经验?
我写得挺傻,跑得超慢(
进行了大量预处理。
考虑处理出以下值以便 DP: - 设 validi,S 表示能否在第 i 天吃在集合 S 内的菠萝包。 - 设 vali,S 表示在第 i 天吃在集合 S 内的菠萝包对答案的贡献。
这两个东西可以 O(n22n) 预处理。
设 fi,S 表示前 i 天总共吃了集合 S 内的菠萝包的答案。
DP 时枚举 i,S,枚举新吃的组合,即可转移。
由于没有限定吃的天数,可以在转移的同时更新答案。
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment