#P17833. [CSP-S 2026] 迁徙 / migrate(民间数据)
[CSP-S 2026] 迁徙 / migrate(民间数据)
题目描述
海上有 座岛屿,自北向南排成一条直线,其中第 ()座岛屿在这条直线上的坐标为整数 ,且 。每年秋季,一群海鸟会沿着这条直线在南北方向上迁徙,小 P 正在观察它们。
海鸟的体力有限,每次飞行的距离都不超过 。若两座岛屿 ()满足 ,海鸟就可以从第 座岛屿直接飞到第 座岛屿。
对于两座不同的岛屿 (),一条从第 座岛屿到第 座岛屿的路径形如 ,其中 ,,且对于所有 (),海鸟都能够从第 座岛屿直接飞到第 座岛屿;其长度为 ,即海鸟在路径中飞行的次数。
小 P 发现,海鸟在迁徙时总是会选择长度最短的路径。对于两座岛屿 (),若从第 座岛屿到第 座岛屿的长度最短的路径恰好有两条,海鸟可以分成两群,分别沿其中一条飞往第 座岛屿;此时称 为双径岛屿对。两条路径不同,当且仅当它们经过的岛屿序列不完全相同。
你需要帮助小 P 求出双径岛屿对的数量。
输入格式
从文件 migrate.in 中读入数据。
本题包含多组测试数据。
输入的第一行包含两个非负整数 ,分别表示测试点编号与测试数据组数。特别地,若 ,则该测试点为样例。
接下来依次输入 组测试数据。对于每组测试数据:
- 第一行包含两个正整数 ,分别表示岛屿数量和海鸟一次最多能飞行的距离。
- 第二行包含 个严格递增的整数 ,依次表示每座岛屿的坐标。
输出格式
输出到文件 migrate.out 中。
对于每组测试数据,输出一行一个非负整数,表示双径岛屿对的数量。
0 2
4 2
1 2 3 4
5 2
1 2 3 4 5
1
2
0 2
5 3
-2 -1 0 1 2
6 2
-4 -3 -2 -1 3 6
0
1
提示
样例 1 解释
该样例共包含两组测试数据。
对于第一组测试数据,仅有 个双径岛屿对 。从第 座岛屿到第 座岛屿有两条长度最短的路径,分别为 和 。
对于第二组测试数据,共有 个双径岛屿对,分别为 和 。从第 座岛屿到第 座岛屿只有一条长度最短的路径 ,因此 不是双径岛屿对。
样例 2 解释
该样例共包含两组测试数据。
对于第一组测试数据,共有 个双径岛屿对。从第 座岛屿到第 座岛屿有三条长度最短的路径,分别为 , 和 ,因此 不是双径岛屿对。
对于第二组测试数据,仅有 个双径岛屿对 。从第 座岛屿到第 座岛屿有两条长度最短的路径,分别为 和 。第 座和第 座岛屿均无法到达任何其他岛屿。
样例 3
见题目目录下的 migrate/3.in 与 migrate/3.ans。
该样例满足测试点 的约束条件。
样例 4
见题目目录下的 migrate/4.in 与 migrate/4.ans。
该样例满足测试点 的约束条件。
样例 5
见题目目录下的 migrate/5.in 与 migrate/5.ans。
该样例满足测试点 的约束条件。
样例 6
见题目目录下的 migrate/6.in 与 migrate/6.ans。
该样例满足测试点 的约束条件。
数据范围
设 为单个测试点内所有测试数据的 的和。对于所有测试数据,均有:
- ,;
- ,,;
- 。
| 测试点编号 | 特殊性质 | |
|---|---|---|
| 无 | ||
| A | ||
| B | ||
| C | ||
| 无 | ||
特殊性质 A: 构成等差数列。
特殊性质 B:存在一座岛屿,使得海鸟可以从该岛屿直接飞到任意其他岛屿。
特殊性质 C:。
相关
在下列比赛中: