显然,只有x个数中有奇数个奇数才能满足题意,也就是奇数个数只能为1,3,5,7.....统计出奇数偶数个数,然后枚举奇数个数,注意枚举时枚举的奇数的的个数除了不能超过奇数的总数,还不能超过x(这是个小坑)
AC代码:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int n,x,odd=0,even=0;
cin>>n>>x;
for(int i=1;i<=n;i++){
int a;
cin>>a;
if(a%2)odd++;
else even++;
}
int flag=0;
for(int i=1;i<=odd&&i<=x;i+=2){//注意i不能超过x
if(even>=x-i)flag=1;
}
if(flag)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
}