Codeforce 1296 A. Array with Odd Sum

給你一個長度爲n的數列,你可以將一個位置上的數改變成數列中其他任意一個數,可以操作無數次。

問操作任意次之後,能否將數列之和變成一個奇數。

 

小學數學。奇數個奇數相加還是奇數,偶數個奇數相加是偶數,奇數加偶數是奇數。

統計數列中奇數和偶數的個數。

如果數列長度n是個奇數,奇數的個數>0即可。意味着把數列中所有數變成一個奇數。

如果n是偶數,那需要奇數和偶數的個數都>0。意味着保留一個偶數,其他位置全部換成奇數。

 

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <set>
#define ms(a,b) memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
typedef double ab;
const int N=1e6+10;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        int a=0,b=0;
        for(int i=0;i<n;i++)
        {
            int c;
            cin>>c;
            if(c&1) ++a;
            else ++b;
        }
        if(((n&1)&&a>0)||((n%2==0)&&a>0&&b>0))
            cout<<"YES"<<endl;
        else
        {
            cout<<"NO"<<endl;
        }   
    }
    //system("pause");
}

 

發佈了74 篇原創文章 · 獲贊 4 · 訪問量 5050
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章