CFCF2190G.Maximize Determinant
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
如果一个 n×n 的矩阵 B 满足:对于每一行 i,都存在一段连续的列区间 [li,ri](1≤li≤ri≤n),使得该行在区间 [li,ri] 范围内的元素全为 1,其他位置全为 0,那么称 B 为区间矩阵。形式化地,Bi,j=1 当且仅当 li≤j≤ri,否则 Bi,j=0。
现在给定一个整数 n 和一个初始的区间矩阵 A,用 n 个三元组 (li,ri,ai) 描述。第 i 行对应的区间是 [li,ri],修改这一行的代价是 ai。
令 S 表示所有可能的 n×n 区间矩阵的集合。记 X 为其中行列式的最大值:
X=B∈Smaxdet(B).
(注意:∣S∣=(2n(n+1))n,每一行都可以选任意合法区间)
你的目标是将 A 变换成某个区间矩阵 A′,使 det(A′)=X。为此,你可以进行如下操作任意次:
- 选择一个行索引 i(1≤i≤n)和一个新的合法区间 [L,R](1≤L≤R≤n)。
- 将当前第 i 行的区间替换为 [L,R]。
- 这次操作的代价为 ai。
请你计算,使最终矩阵的行列式为 X 所需的最小总代价。
输入格式
每组数据包含若干组测试用例。第一行输入测试用例组数 t(1≤t≤5⋅104)。每组测试用例格式如下:
第一行包含一个整数 n(1≤n≤106)——矩阵的规模。
接下来的 n 行,每行三个整数 li、ri、ai(1≤li≤ri≤n,1≤ai≤109),分别表示第 i 行初始区间和修改代价。
保证所有测试用例的 n 之和不超过 106。
输出格式
对于每组测试用例,输出一个整数,表示将矩阵的行列式调整为 X 所需的最小总代价。
输入输出样例
输入#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=2,且可以证明 X=1。矩阵为 A=[1001],此时 det(A)=1,所以不需要任何操作。
在第二个例子中,X 仍然为 1,但初始矩阵为 A=[0110],其行列式为 −1,因此需要进行变换。
可以证明仅进行一次操作无法使行列式达到 1,因此必须修改两个行。一个可能的操作序列为:
[0110]i=2,L=2,R=2[0011]i=1,L=1,R=2[1011]
最终矩阵行列式为 1,总代价为 a2+a1=1+1=2,这就是答案。