CF1833C
分析题意可知, \(a_i\) 始终为正数。将 \(a\) 从小到大排序后,\(a_1\) 无法做任何修改,所以 \(a\) 的奇偶性与 \(a_1\) 的奇偶性相同。对 \(a_1\) 的奇偶性进行分类讨论:
- \(a_1\) 为奇数
对于每个 \(a_i\),若 \(a_i\) 为奇数,则不做任何处理,否则使用偶数减奇数等于奇数,每个偶数都一定能找到一个比自身小的奇数(比如 \(a_1\)),因此一定有解。
- \(a_1\) 为偶数
对于每个 \(a_i\),若 \(a_i\) 为偶数,则不做任何处理,如果存在 \(a_i\) 为奇数则无解,原因是奇数减奇数等于偶数,而最小的奇数无法找到比自身更小的奇数,无法变为偶数。
具体实现见代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n,a[1000001],cnt1,cnt2;
int main()
{
int T;
cin >> T;
while( T -- )
{
cnt1 = cnt2 = 0;
cin >> n;
for( int i = 1 ; i <= n ; i ++ )
{
cin >> a[i];
if( a[i] & 1 ) cnt1 ++;
else cnt2 ++;
}
sort( a + 1 , a + n + 1 );
if( a[1] % 2 == 0 && cnt1 ) cout << "NO" << endl;
else cout << "YES" << endl;
}
return 0;
}
还是菜。