// 确实是有规律,以下几种情况,[1,2,4]分别表示该位置的数能被[1,2,4]整除: // 1. 存在能被 2 整除的数。 [2 2 2 4 1] // 2. 不存在能被 2 整除的数。 [1 4 1] // 我用下面的代码可以 AC #include <vector> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int t, n; cin >> t; for (int j = 0; j < t; ++j) { vector<int> v; int n, tmp; cin >> n; int d1 = 0; int d2 = 0; int d4 = 0; for (int i = 0; i < n; ++i) { cin >> tmp; // v.push_back(tmp); if (tmp & 1) ++d1; else if ((tmp & 3) == 0) ++d4; else if ((tmp & 1) == 0) ++d2; } if ((d2 == 0 && d4+1 >= d1) || (d2 > 0 && d4 >= d1)) cout << "Yes" << endl; else cout << "No" << endl; } return 0; }