题目描述
有一个长度为N的序列。一开始,这个序列是1, 2, 3,... n - 1, n的一个排列。

对这个序列,可以进行如下的操作:

每次选择序列中k个连续的数字,然后用这k个数字中最小的数字替换这k个数字中的每个数字。

我们希望进行了若干次操作后,序列中的每个数字都相等。请你找出需要操作的最少次数。

思路
因为是全排列吧,所以一定有数字1,那么第一次选择的k个内肯定包含有一个1,那么剩下k-1个就都变成了1,同理,一直操作即可。
那么n个数,有一个1了,还有n-1个需要变成1,每次最多可以让k-1个变成1,所以答案就是图片说明

#include<bits/stdc++.h>
using namespace std;
int main(){

    int n,k;cin>>n>>k;
    int q=ceil(1.0*(n-1)/(1.0*k-1));
    cout<<q;
    return 0;
}