编程题
### 问题描述 在音乐的世界中,小然是一位备受瞩目的新星。他的作品总是充满了新奇和独特,给人带来无尽的惊喜。他的每一首歌,都像一条由音符串成的旅程,每一个音符都传达着他的情感和思考。 最近,小然正在创作一首新歌。他想让这首歌的旋律既独特又和谐,通过一连串的音符,表达他的情感。他认为,一首好的歌曲应当满足以下两个条件: 1. 没有两个相邻的音符是相同的(即音符 $A_i \neq A_{i+1}$); 2. 最多只有一个音符是"山峰"(比其相邻的音符都高),最多只有一个音符是"谷底"(比其相邻的音符都低)。 小然有两种方法来达到他的目标: 1. 将任意两个音符进行交换,这种操作不需要任何成本; 2. 将任意一个音符替换为一个全新的音符,这种操作的成本为 $K$。 小然可以进行任意多次上述两种操作,最后还可以自由地调整音符的顺序。请你帮助小然计算出,要使得他的歌曲满足上述条件,需要付出的最小代价是多少? ### 输入格式 第一行输入一个整数 $T$,表示测试用例的数量。 每个测试用例的第一行包含两个空格分隔的整数 $N$ 和 $K$,表示音符的数量和替换音符的成本。 接下来一行,包含 $N$ 个整数,代表小然的原始歌曲的音符。 ### 输出格式 对于每个测试用例,输出一行,表示使得小然的歌曲满足条件的最小代价。 ### 样例输入 ```text 3 3 2 1 1 1 4 2 3 1 2 4 5 2 1 1 2 2 3 ``` ### 样例输出 ```text 2 0 0 ``` ### 说明 在第一个测试用例中,小然的原始歌曲的音符为 $[1, 1, 1]$,有两个相邻的音符是相同的。他可以选择将第二个音符替换为一个新音符,例如 $2$,这样得到的新歌曲的音符为 $[1, 2, 1]$,满足了条件。这种操作的成本为 $2$,因此最小代价为 $2$。 在第二个测试用例中,小然的原始歌曲的音符为 $[3, 1, 2, 4]$,已经满足了条件,因此最小代价为 $0$。 在第三个测试用例中,小然的原始歌曲的音符为 $[1, 1, 2, 2, 3]$,有两个相邻的音符是相同的。但是他可以将音符重新排列为 $[1, 2, 1, 2, 3]$,这样得到的新歌曲的音符满足了条件,且重新排列的操作是免费的,因此最小代价为 $0$。 ### 评测数据范围 $1 \leq T \leq 10^5$。 $1 \leq N \leq 10^5$。 $1 \leq K \leq 10^9$。 $1 \leq A_i \leq N$。 保证每个测试用例 $N$ 的总和不超过 $5 \times 10^5$。
查看答案
赣ICP备20007335号-2