[제목] NetEase는 문제에서 박사 니우 샤오 이순신에 프로그래밍

제목 :
아오 이순신 N의 길이는 양의 정수의 시퀀스 A는 보유 = {A [1], A [2], A [3] ... A [N]}.
소형이 심한 문제점 박사 가축 :
컬럼의 숫자는 이렇게 재 배열이 A 열에 충족의 수 (A)의 모든 [I] * A [I + 1] (1 ≤ I ≤ N - 1)는 4의 배수이다.
샤오 이순신은 지금 열 수 박사 가축 후 요구 사항을 충족하기 위해 재 배열 할 수 있는지 여부를 결정해야합니다.


아이디어 :
SUM 0은 초기입니다
각 숫자에 대한 통계 :

  1. 4로 나눌 경우, 합계 + = 2;
  2. (2)에 의한 4로 나누어 있지만 나눌가없는 경우, 합계 + = 1이라고한다;
  3. 2로 나누어가없는 경우, 합계 + = 0이라고한다;

최종 합계는 제 그렇지 예에 비하여, 배열 크기와 동일한보다 크면 나는 안개 낀에 장님이 왜 나 한테 물어하지 마십시오.


#include <iostream>
#include <vector>
using namespace std;

bool f(vector<int> &vec){
    int sumof2 = 0;
    for (int i = 0; i < vec.size(); ++i){
        int max = 2;
        while (max && vec[i]%2 == 0){
            sumof2 += 1;
            --max;
            vec[i] /= 2;
        }
    }
    
    return sumof2 >= vec.size();
}

int main(){
    int total;
    cin >> total;
    for (int i = 0; i < total; ++i){
        int n;
        vector<int> vec;
        cin >> n;
        for (int j = 0; j < n; ++j){
            int t;
            cin >> t;
            vec.push_back(t);
        }
        
        if (f(vec)){
            cout << "Yes"<<endl;
        }else{
            cout << "No"<<endl;
        }
        
    }
    
    return 0;
}
게시 92 개 원래 기사 · 원 찬양 2 · 조회수 3403

추천

출처blog.csdn.net/zxc120389574/article/details/105318257