社区讨论

萌新看不懂题解求助

CF2053F Earnest Matrix Complement参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m5awm12t
此快照首次捕获于
2024/12/30 18:35
去年
此快照最后确认于
2025/11/04 12:10
4 个月前
查看原帖
fi,jf_{i, j} 表示第 ii 行填 jj 后,前 ii 行贡献的最大值。我们不考虑初始填过的数之间产生的贡献。
ci,jc_{i, j} 表示第 ii 行中 jj 这个数的数量。为了美观,把 ci,1c_{i, -1} 记作 cic_{i}
我们有两个转移:
fi,jfi1,j+ci1×ci,j+(ci1+ci1,j)×ci(这两行填相同数字)fi,jfi1,t+ci1×ci,t+ci1,j×ci(这两行填不同数字)\begin{align*} f_{i, j}&\gets f_{i-1,j} + c_{i-1} \times c_{i, j} + (c_{i-1} + c_{i-1, j}) \times c_{i}& (\text{这两行填相同数字})\\ f_{i, j}&\gets f_{i-1, t} + c_{i-1} \times c_{i, t} + c_{i-1, j} \times c_{i}&(\text{这两行填不同数字}) \end{align*}
确实,对于满足 ci1,j=ci,j=0c_{i-1, j} = c_{i, j} = 0jj,即第 ii 行和第 i1i-1 行都没出现的数,有转移:
fi,jfi1,j+ci1cifi,jfi1,t+ci1×ci,t\begin{align*} f_{i, j} &\gets f_{i-1, j} + c_{i-1}c_{i}\\ f_{i, j} &\gets f_{i-1, t} + c_{i-1} \times c_{i, t} \end{align*}
如果记 a=ci1cia = c_{i-1}c_ib=max1tk(fi1,t+ci1×ci,t)b = \max\limits_{1\le t\le k} \left(f_{i-1, t}+c_{i-1}\times c_{i, t}\right),这些转移是 xmax(x+a,b)x\gets \max(x + a, b),可以用线段树维护 dp 值。
但是怎么快速求 bb 啊?

回复

1 条回复,欢迎继续交流。

正在加载回复...