首先先去试着构造这个排列,首先明确1一定在前面k个数中,任意选择一个位置放1,那么2可以在1的左边,此时可以理解为2前面比她小的是0,也可以放在距离1不超过\(k\)的右边,假设1和2相差\(j\),那么1和2中间可以填\(j-1\)个数,这些数是没有任何限制的,如果3已经被填了,那么继续往后考虑其他的数,以这样的...
b)\)则没有穿过任意一个网格点,明白这个之后就是一个暴力,暴力枚举起点到终点的连线上的所有点的上下点,以这个点作为中点,判断这个点到起点和终点\(gcd\)是否相同,斜率是否不相同,如果满足这些条件,那么求出两段的距离,对答案取\(min\)。