zoukankan      html  css  js  c++  java
  • 重排数列

    小易有一个长度为N的正整数数列A = {A[1], A[2], A[3]..., A[N]}。
    牛博士给小易出了一个难题:
    对数列A进行重新排列,使数列A满足所有的A[i] * A[i + 1](1 ≤ i ≤ N - 1)都是4的倍数。
    小易现在需要判断一个数列是否可以重排之后满足牛博士的要求。 

    输入描述:

    输入的第一行为数列的个数t(1 ≤ t ≤ 10),
    接下来每两行描述一个数列A,第一行为数列长度n(1 ≤ n ≤ 10^5)
    第二行为n个正整数A[i](1 ≤ A[i] ≤ 10^9)
    

    输出描述:

    对于每个数列输出一行表示是否可以满足牛博士要求,如果可以输出Yes,否则输出No。
    

    输入例子1:

    2
    3
    1 10 100
    4
    1 2 3 4
    

    输出例子1:

    Yes
    No
    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--){
            scanf("%d",&n);
            int cnt4=0;
            int cnt2=0;
            int cnt1=0;
            for(int i=0;i<n;i++){
                int x;
                scanf("%d",&x);
                if(x%4==0) cnt4++;
                else if(x%2==0) cnt2++;
                else cnt1++;
            }
            if(cnt2==0){
                if(cnt4>=cnt1-1)
                    printf("Yes
    ");
                else
                    printf("No
    ");
            }else{
                if(cnt4>=cnt1)
                    printf("Yes
    ");
                else
                    printf("No
    ");
            }
        }
        return 0;
    }
    
  • 相关阅读:
    linux之正则表达式
    ssh远程连接centos
    centOS网络配置
    linux软件包的管理
    linux内存、进程管理
    cent_os_7进行磁盘分区
    linux文件压缩、磁盘分区、vi和软硬链接
    linux用户、群操作命令和文件权限修改
    c#控制台程序
    c#简易程序解释1
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602259.html
Copyright © 2011-2022 走看看