6.9 VJ A - Sum of Odd Integers
#include<bits/stdc++.h>
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
/*
题意:给定两个整数n和k,找出n是否可以表示为k个不同的正奇数的和
通过规律发现,
奇数个奇数加起来和为奇数,偶数个奇数加起来和为偶数
1到8中,n为奇数时k只能为1,从9开始k可以为1,3
1到15中,n为偶数时k只能为2,从16开始k可以为2,4
以此类推,根据这个规律判断就可以了
n k
1 1
2
3 1
4 2
5 1
6 2
7 1
8 2
9 1 3
10 2
11 1 3
12 2
13 1 3
14 2
15 1 3
16 2 4
*/
int main()
{
speed_up;
ll t,n,k;
cin>>t;
while(t--)
{
cin>>n>>k;
if(n%2==0)
{
if(n/k>=k&&k%2==0)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
else
{
if(n/k>=k&&k%2!=0)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
/*
题意:给定两个整数n和k,找出n是否可以表示为k个不同的正奇数的和
通过规律发现,
奇数个奇数加起来和为奇数,偶数个奇数加起来和为偶数
1到8中,n为奇数时k只能为1,从9开始k可以为1,3
1到15中,n为偶数时k只能为2,从16开始k可以为2,4
以此类推,根据这个规律判断就可以了
n k
1 1
2
3 1
4 2
5 1
6 2
7 1
8 2
9 1 3
10 2
11 1 3
12 2
13 1 3
14 2
15 1 3
16 2 4
*/
int main()
{
speed_up;
ll t,n,k;
cin>>t;
while(t--)
{
cin>>n>>k;
if(n%2==0)
{
if(n/k>=k&&k%2==0)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
else
{
if(n/k>=k&&k%2!=0)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
return 0;
}
}