309594: CF1704B. Luke is a Foodie

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Luke is a Foodie

题意翻译

有 $n$ 个数、一个常数 $x$ 和一个值 $v$,一开始你可以设 $v$ 为任何非负整数。从头到尾遍历这 $n$ 个数(不能回头),如果 $|v-a_i|>x$,那么你需要修改 $v$ 使得上式不成立。最后,你需要输出修改 $v$ 的最少次数(一开始设置 $v$ 时,我们不认为这是修改)。 多测,$1\le n\le2\cdot10^5$,$1\le t\le 10^4$,$1\le x \le 10^9$。 translated by @xzy090626

题目描述

Luke likes to eat. There are $ n $ piles of food aligned in a straight line in front of him. The $ i $ -th pile contains $ a_i $ units of food. Luke will walk from the $ 1 $ -st pile towards the $ n $ -th pile, and he wants to eat every pile of food without walking back. When Luke reaches the $ i $ -th pile, he can eat that pile if and only if $ |v - a_i| \leq x $ , where $ x $ is a fixed integer, and $ v $ is Luke's food affinity. Before Luke starts to walk, he can set $ v $ to any integer. Also, for each $ i $ ( $ 1 \leq i \leq n $ ), Luke can change his food affinity to any integer before he eats the $ i $ -th pile. Find the minimum number of changes needed to eat every pile of food. Note that the initial choice for $ v $ is not considered as a change.

输入输出格式

输入格式


The input consists of multiple test cases. The first line contains a single integer $ t $ ( $ 1 \leq t \leq 10^4 $ ) — the number of test cases. The description of test cases follows. For each test case, the first line contains two integers, $ n, x $ ( $ 1 \leq n \leq 2 \cdot 10^5 $ , $ 1 \leq x \leq 10^9 $ ) — the number of piles, and the maximum difference between the size of a pile and Luke's food affinity, such that Luke can eat the pile. The second line contains $ n $ integers $ a_1, a_2, \ldots , a_n $ ( $ 1 \leq a_i \leq 10^9 $ ). It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 2 \cdot 10^5 $ .

输出格式


For each test case, output an integer on a separate line, which is the minimum number of changes needed.

输入输出样例

输入样例 #1

7
5 3
3 8 5 6 7
5 3
3 10 9 8 7
12 8
25 3 3 17 8 6 1 16 15 25 17 23
10 2
1 2 3 4 5 6 7 8 9 10
8 2
2 4 6 8 6 4 12 14
8 2
2 7 8 9 6 13 21 28
15 5
11 4 13 23 7 10 5 21 20 11 17 5 29 16 11

输出样例 #1

0
1
2
1
2
4
6

说明

In the first test case, Luke can set $ v $ to $ 5 $ before he starts to walk. And he can walk straight to eat every piles of food without changing $ v $ . In the second test case, Luke can set $ v $ to $ 3 $ before he starts to walk. And he could change $ v $ to $ 10 $ before he eats the second pile. After that, he can walk straight to eat remaining food without changing $ v $ . In the fourth test case, Luke can set $ v $ to $ 3 $ before he starts to walk. And he could change $ v $ to $ 8 $ before he eats the sixth pile. After that, he can walk straight to eat remaining food without changing $ v $ . In the fifth test case, Luke can set $ v $ to $ 4 $ before he starts to walk. And he could change $ v $ to $ 6 $ before he eats the fourth pile. Then he could change $ v $ to $ 12 $ before he eats the seventh pile. After that, he can walk straight to eat remaining food without changing $ v $ .

Input

题意翻译

有 $n$ 个数、一个常数 $x$ 和一个值 $v$,一开始你可以设 $v$ 为任何非负整数。从头到尾遍历这 $n$ 个数(不能回头),如果 $|v-a_i|>x$,那么你需要修改 $v$ 使得上式不成立。最后,你需要输出修改 $v$ 的最少次数(一开始设置 $v$ 时,我们不认为这是修改)。 多测,$1\le n\le2\cdot10^5$,$1\le t\le 10^4$,$1\le x \le 10^9$。 translated by @xzy090626

Output

**题目大意**:

Luke喜欢吃。面前有 $ n $ 堆食物排成一行。第 $ i $ 堆有 $ a_i $ 单位食物。

Luke会从第一堆走向最后一堆,并且他想吃掉每一堆食物而不回头。当Luke到达第 $ i $ 堆时,只有当 $ |v - a_i| \leq x $ 时他才能吃掉那一堆,其中 $ x $ 是一个固定的整数,$ v $ 是Luke的食物亲和力。

Luke开始走之前,他可以将 $ v $ 设置为任何整数。并且对于每个 $ i $($ 1 \leq i \leq n $),Luke在吃第 $ i $ 堆食物前可以改变他的食物亲和力为任何整数。

找出为了吃掉每一堆食物需要的最小改变次数。

注意:初始选择 $ v $ 不被认为是一次改变。

**输入输出数据格式**:

**输入格式**:
- 第一行包含一个整数 $ t $($ 1 \leq t \leq 10^4 $)——测试用例的数量。
- 每个测试用例的第一行包含两个整数 $ n, x $($ 1 \leq n \leq 2 \cdot 10^5 $,$ 1 \leq x \leq 10^9 $)——食物堆的数量和食物堆的大小与Luke的食物亲和力之间的最大差异,使得Luke可以吃掉那一堆。
- 第二行包含 $ n $ 个整数 $ a_1, a_2, \ldots , a_n $($ 1 \leq a_i \leq 10^9 $)。

保证所有测试用例的 $ n $ 之和不超过 $ 2 \cdot 10^5 $。

**输出格式**:
- 对于每个测试用例,输出一个整数,表示需要的最小改变次数。

**输入输出样例**:

**输入样例 #1**:
```
7
5 3
3 8 5 6 7
5 3
3 10 9 8 7
12 8
25 3 3 17 8 6 1 16 15 25 17 23
10 2
1 2 3 4 5 6 7 8 9 10
8 2
2 4 6 8 6 4 12 14
8 2
2 7 8 9 6 13 21 28
15 5
11 4 13 23 7 10 5 21 20 11 17 5 29 16 11
```

**输出样例 #1**:
```
0
1
2
1
2
4
6
```**题目大意**: Luke喜欢吃。面前有 $ n $ 堆食物排成一行。第 $ i $ 堆有 $ a_i $ 单位食物。 Luke会从第一堆走向最后一堆,并且他想吃掉每一堆食物而不回头。当Luke到达第 $ i $ 堆时,只有当 $ |v - a_i| \leq x $ 时他才能吃掉那一堆,其中 $ x $ 是一个固定的整数,$ v $ 是Luke的食物亲和力。 Luke开始走之前,他可以将 $ v $ 设置为任何整数。并且对于每个 $ i $($ 1 \leq i \leq n $),Luke在吃第 $ i $ 堆食物前可以改变他的食物亲和力为任何整数。 找出为了吃掉每一堆食物需要的最小改变次数。 注意:初始选择 $ v $ 不被认为是一次改变。 **输入输出数据格式**: **输入格式**: - 第一行包含一个整数 $ t $($ 1 \leq t \leq 10^4 $)——测试用例的数量。 - 每个测试用例的第一行包含两个整数 $ n, x $($ 1 \leq n \leq 2 \cdot 10^5 $,$ 1 \leq x \leq 10^9 $)——食物堆的数量和食物堆的大小与Luke的食物亲和力之间的最大差异,使得Luke可以吃掉那一堆。 - 第二行包含 $ n $ 个整数 $ a_1, a_2, \ldots , a_n $($ 1 \leq a_i \leq 10^9 $)。 保证所有测试用例的 $ n $ 之和不超过 $ 2 \cdot 10^5 $。 **输出格式**: - 对于每个测试用例,输出一个整数,表示需要的最小改变次数。 **输入输出样例**: **输入样例 #1**: ``` 7 5 3 3 8 5 6 7 5 3 3 10 9 8 7 12 8 25 3 3 17 8 6 1 16 15 25 17 23 10 2 1 2 3 4 5 6 7 8 9 10 8 2 2 4 6 8 6 4 12 14 8 2 2 7 8 9 6 13 21 28 15 5 11 4 13 23 7 10 5 21 20 11 17 5 29 16 11 ``` **输出样例 #1**: ``` 0 1 2 1 2 4 6 ```

加入题单

上一题 下一题 算法标签: