题意:输入t个测试,每个测试输入n,k;判断n是否能使用k个不相同的奇数表示出来。
最开始想得太复杂,分了好多种情况,写了很多没用的代码。
题解:应该想什么样的数才能被表示出来:
- 奇偶对应(n为奇数,k也应该是奇数)
- n>=k*k(当不满足这个条件时,是找不到k个奇数的和等于n的)
有了这两个条件,代码就可以写出来了!
ACcode:
int main()
{
int t;
cin >> t;
while (t--)
{
ll n, k;
cin >> n >> k;
if((n%2==k%2) && (n >= k * k))
cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}