題意:有相互交叉的黑白兩種顏色的小球,每一個小球每次可以跳兩格;問你是否可以將同種顏色的小球移動到連續的位置上去; 分析: A、當球的總數是奇數的時候,無論怎麼移動,均能使小球移動到滿足的位置; B、當球的總數是偶數的時候,當處於奇數與偶數位置上的某一種顏色的球的差值小於2時,也能移動到滿足的位置,否則不能。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<bitset>
using namespace std;
int main()
{
int Case , flag , n , num[ 50 ] , eve , odd ;
cin >> Case ;
while( Case-- )
{
cin >> n ;
eve = odd = 0 ;
for( int i = 1 ; i <= n ; ++i )
{
cin >> num[ i ] ;
if( i % 2 == 0 )
eve += num[ i ] ;
else
odd += num[ i ] ;
}
if( n % 2 == 1 )
flag = 1 ;
else if( odd == eve || abs( odd - eve ) == 1 )
flag = 1 ;
else
flag = 0 ;
if( flag )
cout << "YES" << endl ;
else
cout << "NO" <<endl ;
}
return 0 ;
}
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<bitset>
using namespace std;
int main()
{
int Case , flag , n , num[ 50 ] , eve , odd ;
cin >> Case ;
while( Case-- )
{
cin >> n ;
eve = odd = 0 ;
for( int i = 1 ; i <= n ; ++i )
{
cin >> num[ i ] ;
if( i % 2 == 0 )
eve += num[ i ] ;
else
odd += num[ i ] ;
}
if( n % 2 == 1 )
flag = 1 ;
else if( odd == eve || abs( odd - eve ) == 1 )
flag = 1 ;
else
flag = 0 ;
if( flag )
cout << "YES" << endl ;
else
cout << "NO" <<endl ;
}
return 0 ;
}