C. Joyboard
这道题需要进行分类讨论。
- 当\(k=1\)时,即构造的数组中所有元素皆为\(0\)才成立,所以输出\(1\)。
- 当\(k=2\)时,只有\(a[n+1]<=n\)或\(a[n + 1]=x\)(其中\(n|x\))才成立,所以答案是\(n+\lfloor \frac{n+m}{n} \rfloor\)\((m>n)\)。
- 当\(k=3\)时,只有\(a[n+1]>n\)且\(a[n + 1]\neq x\)时才成立,所以答案是\(m-n-\lfloor \frac{n+m}{n} \rfloor\)\((m>n)\)。
代码
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
typedef pair<ll, ll> PII;
const ll N = 1e5 + 10;
ll t;
ll n, m, k;
signed main()
{
std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> t;
while(t--)
{
cin >> n >> m >> k;
if(k > 3)
{
cout << 0 << endl;
}
else if(k == 3)
{
if(m > n)
{
cout << m - n - (m - n) / n << endl;
}
else
{
cout << 0 << endl;
}
}
else if(k == 2)
{
if(m > n)
{
cout << n + (m - n) / n << endl;
}
else
{
cout << m << endl;
}
}
else if(k == 1)
{
cout << 1 << endl;
}
}
return 0;
}
标签:typedef,cout,ll,cin,long,CF,1877
From: https://www.cnblogs.com/tongluosao/p/17755579.html