CFCF2190G.Maximize Determinant

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

如果一个 n×nn \times n 的矩阵 BB 满足:对于每一行 ii,都存在一段连续的列区间 [li,ri][l_i, r_i]1lirin1 \le l_i \le r_i \le n),使得该行在区间 [li,ri][l_i, r_i] 范围内的元素全为 11,其他位置全为 00,那么称 BB 为区间矩阵。形式化地,Bi,j=1B_{i, j} = 1 当且仅当 lijril_i \le j \le r_i,否则 Bi,j=0B_{i, j} = 0

现在给定一个整数 nn 和一个初始的区间矩阵 AA,用 nn 个三元组 (li,ri,ai)(l_i, r_i, a_i) 描述。第 ii 行对应的区间是 [li,ri][l_i, r_i],修改这一行的代价是 aia_i

S\mathcal{S} 表示所有可能的 n×nn \times n 区间矩阵的集合。记 XX 为其中行列式的最大值:

X=maxBSdet(B).X = \max\limits_{B \in \mathcal{S}} \operatorname{det}(B).

(注意:S=(n(n+1)2)n|\mathcal{S}| = \left(\frac{n(n + 1)}{2}\right)^n,每一行都可以选任意合法区间)

你的目标是将 AA 变换成某个区间矩阵 AA',使 det(A)=X\operatorname{det}(A') = X。为此,你可以进行如下操作任意次:

  • 选择一个行索引 ii1in1 \le i \le n)和一个新的合法区间 [L,R][L, R]1LRn1 \le L \le R \le n)。
  • 将当前第 ii 行的区间替换为 [L,R][L, R]
  • 这次操作的代价为 aia_i

请你计算,使最终矩阵的行列式为 XX 所需的最小总代价。

输入格式

每组数据包含若干组测试用例。第一行输入测试用例组数 tt1t51041 \le t \le 5 \cdot 10^4)。每组测试用例格式如下:

第一行包含一个整数 nn1n1061 \le n \le 10^6)——矩阵的规模。

接下来的 nn 行,每行三个整数 lil_irir_iaia_i1lirin1 \le l_i \le r_i \le n1ai1091 \le a_i \le 10^9),分别表示第 ii 行初始区间和修改代价。

保证所有测试用例的 nn 之和不超过 10610^6

输出格式

对于每组测试用例,输出一个整数,表示将矩阵的行列式调整为 XX 所需的最小总代价。

输入输出样例

  • 输入#1

    6
    2
    1 1 1
    2 2 1
    2
    2 2 1
    1 1 1
    4
    1 4 4
    2 2 3
    4 4 6
    2 4 5
    6
    1 6 1
    5 5 1000
    2 4 1000
    6 6 1000
    3 3 1000
    4 4 1000
    5
    1 1 1000000000
    1 1 1000000000
    1 1 1000000000
    1 1 1000000000
    1 1 1000000000
    5
    1 4 15
    4 4 14
    2 3 16
    2 2 14
    3 5 15

    输出#1

    0
    2
    3
    1000
    4000000000
    14

说明/提示

在第一个例子中,n=2n=2,且可以证明 X=1X=1。矩阵为 A=[1001]A = \begin{bmatrix} 1 & 0\\0 & 1\end{bmatrix},此时 det(A)=1\operatorname{det}(A) = 1,所以不需要任何操作。

在第二个例子中,XX 仍然为 11,但初始矩阵为 A=[0110]A = \begin{bmatrix} 0 & 1\\1 & 0\end{bmatrix},其行列式为 1-1,因此需要进行变换。

可以证明仅进行一次操作无法使行列式达到 11,因此必须修改两个行。一个可能的操作序列为:

[0110]i=2,L=2,R=2[0101]i=1,L=1,R=2[1101] \begin{bmatrix} 0 & 1\\1 & 0\end{bmatrix} \xrightarrow{i = 2, \, L = 2, \, R = 2} \begin{bmatrix} 0 & 1\\0 & 1\end{bmatrix} \xrightarrow{i = 1, \, L = 1, \, R = 2} \begin{bmatrix} 1 & 1\\0 & 1\end{bmatrix}

最终矩阵行列式为 11,总代价为 a2+a1=1+1=2a_2 + a_1 = 1 + 1 = 2,这就是答案。

首页