题解:P12888 [蓝桥杯 2025 国 Java B] 钟楼管理员
题意简述
有一个钟表,表盘上是从
注:表盘是环形!!!
思路
我们假设
注意到上式中只有
分类讨论后发现
-
如果
\operatorname{gcd}(2, N)=1 (即N 是奇数),序列(2a-K) \bmod N 会覆盖所有可能的余数,最多为\operatorname{min}(K+1, N) 。 -
如果
\operatorname{gcd}(2, N)=2 (即N 是偶数),序列(2a-K) \bmod N 会覆盖所有同奇偶的余数,最多为\operatorname{min}(K+1, N/2) 。
代码
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int T;
cin >> T;
while (T--)
{
int n,k;
cin >> n >> k;
int ans;
if(n%2==1)ans=min(k+1,n);
else ans=min(k+1,n/2);
cout << ans << '\n';
}
return 0;
}