Educational Codeforces Round 84

A

不相邻的k个奇数相加是否等于n

第一次读错题了,忽略了distinct(不同的)

判断奇偶性     n 是否 k * k;

因为

偶数= 偶数个奇数相加

奇数 = 奇数个奇数

偶数 - 偶数 = 偶数   奇数- 奇数= 偶数

选择的k个奇数  最小的值1 + 3 + 5 + ....+ (2 k - 1) = k * k

#include <bits/stdc++.h>

#define int long long
using namespace std;

int t, n, k;

signed main() {
    //freopen("in","r",stdin);
    ios::sync_with_stdio(0);
    cin >> t;
    while (t--) {
        cin >> n >> k;
        if ((n >= k * k) && ((n - k) % 2 == 0))
            cout << "YES" << endl;
        else  cout << "NO" << endl;
    }
}

下次遇到大数的时候,直接long long 就行了,不要用int,一样的代码,数据范围不一样,照样WA了,23333333

猜你喜欢

转载自www.cnblogs.com/xcfxcf/p/12558398.html
今日推荐