这题属于签到题,没做出来很不应该(太菜了)! 题意翻译一下就是每个来回可以进去(m-1)人,每次需要2个单位时间(m个人进去和1个带校园卡的靓仔出来),最后一次可以进m个人,此时只需要1个单位时间(因为带校园卡的靓仔不需要再出来了)。

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        int n, m;
        cin >> n >> m;
        if (m == 1) //特判只有1个人带校园卡的情况
        {
            if (n == 1) //注意!!!
                cout << "1";
            else //其他都是不可行的方案
                cout << "-1";
            cout << '\n';
        }
        else
        {
            n -= m;            //先把最后一次进去的人数减去,剩余的人就是每次传递校园卡进去的人
            long long ans = 1; //最后一次进去只需1单位时间
            if (n >= 0)
            {
                int len = ceil(1.0 * n / (m - 1)); // ceil 上取整
                ans += len * 2;
                cout << ans << '\n';
            }
        }
    }
    return 0;
}