原题链接https://codeforces.com/contest/1363/problem/A
感觉这题很简单,但真的做了很久。
题目大意:给个数中挑个数,判断是否能挑出的个数的和为奇数。
解题思路:
先统计奇数的个数和偶数的个数,再暴力搜索emmm……想不太到更好了解法。
暴力搜索:先选择一个奇数,每次递加2,搜索到满足条件的情况时跳出循环。
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5;
int tmp,n,x,sum1,sum2;
int main(){
int T,f;
scanf("%d",&T);
while(T --){
scanf("%d%d",&n,&x);
f = 1;
for(int i = 0;i < n;i ++){
scanf("%d",&tmp);
tmp %= 2;
sum1 += tmp;
sum2 += (1 - tmp);
}
int i = 1;
for(;i <= sum1;i += 2){
if(x - i <= sum2 && x - i >= 0){
printf("Yes\n");
break;
}
}
if (i > sum1)printf("No\n");
sum2 = sum1 = 0;
}
return 0;
}