Codeforces Round #617 (Div. 3) Array with Odd Sum

解題報告:

思路:

三種情況:第一種,有偶數,有奇數,只要留一個奇數,其他所有奇數轉爲偶數,所以是YES。

第二種,有偶數,無奇數,很顯然是NO。

第三種,無偶數,有奇數,這個時候看奇數個數,如果爲偶數,很顯然爲NO,反之爲YES。

代碼:

#include<bits/stdc++.h>

using namespace std;
typedef long long ll;

void solve(){
    ll n;
    ll even = 0, odd = 0;
    scanf("%lld", &n);
    for(ll i=0; i<n; ++i){
        ll x;
        scanf("%lld", &x);
        if(x&1)++odd;
        else ++even;
    }
    if(even > 0 && odd > 0)printf("YES\n");
    else if(even > 0 && odd == 0)printf("NO\n");
    else if(even == 0 && odd > 0){
        if(odd&1)printf("YES\n");
        else printf("NO\n");
    }
}

int main(){
    ll t;
    scanf("%lld", &t);
    while(t--){
        solve();
    }
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章