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;
} 
posted @ 2024-01-20 18:11  liyilang2021  阅读(2)  评论(0编辑  收藏  举报