CF1988E Range Minimum Sum

题目描述

对于一个长度为 $n$ 的数组 $[a_1,a_2,\ldots,a_n]$,定义 $f(a)$ 为所有子区间的最小值之和。即, $$ f(a)=\sum_{l=1}^n\sum_{r=l}^n \min_{l\le i\le r}a_i。 $$ 一个排列是长度为 $n$ 的整数序列,包含 $1$ 到 $n$ 的每个数字且每个数字恰好出现一次。给定一个排列 $[a_1,a_2,\ldots,a_n]$。对于每个 $i$,独立地解决以下问题: - 从 $a$ 中删除 $a_i$,将剩余部分拼接得到 $b=[a_1,a_2,\ldots,a_{i-1},a_{i+1},\ldots,a_n]$。 - 计算 $f(b)$。

输入格式

每个测试点包含多组测试数据。第一行包含测试用例个数 $t$($1 \le t \le 10^5$)。 接下来每组测试数据描述如下: 第一行包含一个整数 $n$($1\le n\le 5\cdot 10^5$)。 第二行包含 $n$ 个互不相同的整数 $a_1,\ldots,a_n$($1\le a_i\le n$)。 保证所有测试用例中 $n$ 的总和不超过 $10^6$。

输出格式

对于每组测试数据,输出一行包含 $n$ 个整数,第 $i$ 个整数表示删除 $a_i$ 后 $f(b)$ 的值。

说明/提示

在第二个测试用例中,$a=[3,1,2]$。 - 删除 $a_1$ 后,$b=[1,2]$,$f(b)=1+2+\min\{1,2\}=4$。 - 删除 $a_2$ 后,$b=[3,2]$,$f(b)=3+2+\min\{3,2\}=7$。 - 删除 $a_3$ 后,$b=[3,1]$,$f(b)=3+1+\min\{3,1\}=5$。 由 ChatGPT 4.1 翻译