CF1990C Mad MAD Sum
题目描述
我们定义数组中的 $ \operatorname{MAD} $(最大重复出现数)为数组中出现至少两次的最大数字。具体来说,如果没有任何数字出现至少两次,则 $ \operatorname{MAD} $ 的值为 $ 0 $。
例如,$ \operatorname{MAD}([1, 2, 1]) = 1 $,$ \operatorname{MAD}([2, 2, 3, 3]) = 3 $,$ \operatorname{MAD}([1, 2, 3, 4]) = 0 $。
给定一个长度为 $ n $ 的数组 $ a $。初始时,有一个变量 $ sum $,其值为 $ 0 $。
执行如下过程,直到 $ a $ 中所有数字都变为 $ 0 $ 为止,循环进行:
1. 令 $ sum := sum + \sum_{i=1}^{n} a_i $;
2. 令 $ b $ 为长度为 $ n $ 的数组。对于所有 $ 1 \le i \le n $,令 $ b_i :=\ \operatorname{MAD}([a_1, a_2, \ldots, a_i]) $,然后对于所有 $ 1 \le i \le n $,令 $ a_i := b_i $。
请你求出该过程结束后 $ sum $ 的值。
输入格式
第一行包含一个整数 $ t $($ 1 \leq t \leq 2 \cdot 10^4 $),表示测试用例的数量。
对于每个测试用例:
- 第一行包含一个整数 $ n $($ 1 \leq n \leq 2 \cdot 10^5 $),表示数组 $ a $ 的长度;
- 第二行包含 $ n $ 个整数 $ a_1, a_2, \ldots, a_n $($ 1 \leq a_i \leq n $),表示数组的元素。
保证所有测试用例中 $ n $ 的总和不超过 $ 2 \cdot 10^5 $。
输出格式
对于每个测试用例,输出一个整数,表示该过程结束后 $ sum $ 的值,每个测试用例输出一行。
说明/提示
在第一个测试用例中,初始时 $ a=[1]$。
第一次循环:
1. 令 $ sum := sum + a_1 = 0+1=1 $;
2. 令 $ b_1 :=\ \operatorname{MAD}([a_1])=\ \operatorname{MAD}([1])=0 $,然后令 $ a_1 := b_1 $。
第一次循环后,$ a=[0] $,过程结束。最终 $ sum=1 $。
在第二个测试用例中,初始时 $ a=[2,2,3]$。
第一次循环后,$ a=[0,2,2] $,$ sum=7 $。
第二次循环后,$ a=[0,0,2] $,$ sum=11 $。
第三次循环后,$ a=[0,0,0] $,$ sum=13 $,过程结束。
最终 $ sum=13 $。
由 ChatGPT 4.1 翻译