2023.8.26 LGJ Round

发布时间 2023-08-26 11:15:05作者: GloriousCc

A

\(n\) 个序列,每个序列长度 \(m_i\),每个序列的每个数有权值 \(c{i,j}\)\(\sum m_i\le n\le 10^5\).
A 和 B 轮流行动,A 只能选择一个序列获得其开头数的权值并删去, B 只能选择一个序列获得其末尾数的权值并删去。
问 A,B 分别最多获得多少权值。

若所有序列长度为偶数,可以证明,A 和 B 一定是各自取一半。
举个例子:若出现这样:

AAAB
ABBB

那么只有 \(c_{1,3}>c_{2,2}\),A 才会这么做。
但是对于 B,B 始终比 A 先取到 \(c_{1,3}\),所以上面是不对的。

若有长度为奇数怎么办呢?
A 和 B 还是各自取一半。剩下的中间那个数若 A 先手就先取到了,但 B 可以取下一个。
把中间的权值从大到小排序,奇数位置的 A 选择,偶数位置的 B 选择。