A - Yet Another Tetris ProblemCodeForces - 1324A
题意:给定一串长度为n的数组,当这串数组至少有一个数组大于 0 时进行如下操作:1、选择一个数+2 2、当这串数组每个数都大于 0 时,使这个数组每个数都减 1 ,直到有数小于等于0.然后在进行 1 操作,循环进行。问最后能否经过这些操作让这个数组上的数全部变为 0 。
思路:我感觉我当时写的时候思路是乱的,毕竟也好久没有写过题了,尴尬…….其实这个题就是思维题,你会发现只要数组同时出现奇数和偶数就不行,因为如果两个数相差 1 ,加上 2 是无法弥补的。
简单代码:
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
int main(){
ios :: sync_with_stdio( false );
cin.tie( NULL );
int t, n, num, f;
cin >> t;
while( t-- ){
cin >> n;
int flag = 1;
for( int i = 0; i < n; i++ ){
cin >> num;
if( !i ){
f = num % 2;
}
else{
if( f != ( num % 2 ) ){
flag = 0;
}
}
}
if( flag ){
cout << "YES\n";
}
else{
cout << "NO\n";
}
}
return 0;
}
复杂代码(有点模拟的感觉,其实思路是乱的,碰巧过了罢了):
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
ios :: sync_with_stdio( false );
cin.tie( NULL );
int t, n, a[110];
cin &g