CF1891E Brukhovich and Exams
题目描述
男孩 Smilo 正在和名叫 Brukhovich 的老师一起学习算法。
在这一年中,Brukhovich 将会安排 $n$ 场考试。每场考试的难度 $a_i$ 已知,且为非负整数。
Smilo 不喜欢相邻两场考试的难度的最大公约数等于 $1$。因此,他认为一学年的“悲伤值”是所有满足条件的考试对的数量。更正式地说,悲伤值是满足 $gcd(a_i, a_{i+1}) = 1$ 的下标 $i$ 的数量($1 \leq i \leq n-1$),其中 $gcd(x, y)$ 表示整数 $x$ 和 $y$ 的最大公约数。
Brukhovich 想要尽量减少 Smilo 这一年的悲伤值。为此,他可以将任意场考试的难度设为 $0$。但 Brukhovich 又不想让学生们的生活太轻松,因此他最多只能进行 $k$ 次这样的操作。
请帮助 Smilo 计算,如果 Brukhovich 最多进行 $k$ 次操作,能达到的最小悲伤值是多少。
提醒:两个非负整数 $x$ 和 $y$ 的最大公约数(GCD)是同时整除 $x$ 和 $y$ 的最大整数,记作 $gcd(x, y)$。特别地,对于任意非负整数 $x$,有 $gcd(x, 0) = gcd(0, x) = x$。
输入格式
第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 $n$ 和 $k$($1 \leq k \leq n \leq 10^5$),分别表示考试的总数和最多可以简化的考试数量。
每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, a_3, \ldots, a_n$,表示每场考试的难度($0 \leq a_i \leq 10^9$)。
保证所有测试用例中 $n$ 的总和不超过 $10^5$。
输出格式
对于每个测试用例,输出一个整数,表示在最多进行 $k$ 次操作后能达到的最小悲伤值。
说明/提示
在第一个测试用例中,最小悲伤值为 $1$。为此,你可以简化第二场和第四场考试。此后,只有第一场和第二场考试之间的相邻对的最大公约数为 $1$。
在第二个测试用例中,通过简化第二场和第四场考试,可以使悲伤值达到 $0$。
由 ChatGPT 4.1 翻译