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;
        }
    }
    return 0;
}
 
posted @ 2020-06-09 15:25  SyrupWRLD  阅读(115)  评论(0)    收藏  举报