0
点赞
收藏
分享

微信扫一扫

2022牛客寒假1 炸鸡块君的高中回忆(模拟水题)

十里一走马 2022-04-28 阅读 39
c++

在这里插入图片描述
在这里插入图片描述\

思路:

推公式。

先将 m 个人进校一次,消耗时间为 1(因为无需使者一来一回)

剩下n-m个人,每次m-1人进校,进n-m/m-1次校

余(n-m)%(m-1)人,若为0则无需进校,次数为0,若不为0则进1次校

进一次校要花2单位时间(因为需要使者一来一回)

代码:

#include<bits/stdc++.h>

using namespace std;
#define int long long

signed main()
{
int t; scanf("%lld",
while(t--)
{
int n, m; scanf("%lld%lld",
if(n==m)
{
puts("1");
continue;
}
if(m==1)
{
if(n==1) puts("1");
else puts("-1");
}
else
{
int res = 1;//先将 m 个人进校一次,消耗时间为 1(因为无需使者一来一回)
int tmp = (n - m) / (m - 1);//剩下n-m个人,每次m-1人进校,进tmp次校
int rmd = (n - m) % (m - 1);//余rmd人,若为0则无需进校,次数为0,若不为0则进1次校
res += (tmp + ((!rmd) ? 0 : 1)) * 2;//进一次校要花2单位时间(因为需要使者一来一回)
printf("%lld\n", res);
}
}


return 0;
}

举报

相关推荐

0 条评论