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