用户工具

站点工具


2020-2021:teams:acm_life_from_zero:8.22-8.28

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
2020-2021:teams:acm_life_from_zero:8.22-8.28 [2020/08/28 15:22]
holmium [姜维翰]
2020-2021:teams:acm_life_from_zero:8.22-8.28 [2020/08/28 15:30] (当前版本)
kipple [袁熙]
行 49: 行 49:
 ===== 袁熙 ===== ===== 袁熙 =====
  
 +[[https://​atcoder.jp/​contests/​abc176/​tasks/​abc176_f|abc176f ​ brave chain]]\\
 +
 +题意:长$3n(n<​2000)$的数列$a,​1\leq a_i \leq n$,每次操作可以从最左选5个任意排序并选出3个除去,若3个数相同得一分,直到最后剩下3个数。若他们也都相同,得一分。求可能的最大得分。\\
 +
 +tag:dp\\
 +
 +题解:考虑dp(i,​x,​y),表示进行第i次操作时,从5个数中留下了x,​y 两个数后,已得分的最大值。直接dp状态数会很多,但发现在i和i+1时可能存在的x,​y的状态差的不多,可以考虑滚动掉第一维。考虑对i和i+1时x,​y变化进行讨论。若i+1时存在三个数相同,可以贪心地直接将这三个数删除;若$x_1,​y_1$中有一个/​两个数被更换为$x_2,y_2$;有一个数被更换时,$dp_{i+1}(x_1,​y_2)$只需要从$dp_i(y_2,​*)$更新,两个数都被更换时,仅更新$dp(x_2,​y_2)$的最大值。这样每轮处理的状态数是$O(n)$的,复杂度$O(n^2)$\\
 +
 +comment:​本周做的比较有意思的题
  
2020-2021/teams/acm_life_from_zero/8.22-8.28.1598599362.txt.gz · 最后更改: 2020/08/28 15:22 由 holmium