zoukankan      html  css  js  c++  java
  • CodeForces1360C

    题意

    给出T组数据,每组数据给出一个n,接下去给出一个长度为n的数组。(n是偶数)

    我们现在需要将数组中的元素分为两个一组,

    问所有的分组中每个元素是否满足:差值为1 或 奇偶性一样

    全部分组都满足则输出YES,否则输出NO

    思路

    情况一 特判:
    奇数和偶数的个数一样 且 个数都为偶数。如果奇数的个数ji为偶数,因为n是偶数,所以说明偶数的个数ou也为偶数,这种情况直接输出YES

    情况二:
    奇数和偶数的个数不一样。如果奇数的个数ji为奇数,同理,偶数的个数ou也必为奇数。所以我们只需要对所有元素进行排序,判断是否存在差值为1的元素对即可。注意后面输出NO的条件是 if(ji&1&&!flag) ,而不是 if(!flag) ,不要搞错了。

    AC代码

    #include<iostream>
    #include<string.h>
    #include<stdio.h>
    #include<algorithm>
    #include<map>
    using namespace std;
    typedef long long ll;
    #define inf 0x3f3f3f3f
    
    int a[55];
    
    int main()
    {
        int T;
        cin>>T;
        while(T--)
        {
            int n;
            cin>>n;
            int ji=0,ou=0;
            for(int i=0;i<n;i++)
            {
                cin>>a[i];
                if(a[i]&1) ji++;//x[cnt1++]=ji;
                else ou++;//y[cnt2++]=ou;
            }
           // sort(x,x+cnt1),sort(y,y+cnt2);
            //ji&1==0间接相当于ou&1==0,因为n是偶数
            if(ji&1==0)
                cout<<"YES"<<endl;
            else
            {
                // 如果奇数个数为奇数
                // 那么偶数个数也必为奇数
                sort(a,a+n);
                bool flag=0;
                for(int i=1;i<n;i++)
                {
                    if(a[i]-a[i-1]==1)
                    {
                        flag=1;
                        break;
                    }
                }
    //            if(flag)
    //                cout<<"YES"<<endl;
                if(ji&1&&!flag)
                    cout<<"NO"<<endl;
                else
                    cout<<"YES"<<endl;
            }
        }
        return 0;
    }
    
  • 相关阅读:
    FreeRTOS移植到Cortex-M3-M4
    码位颠倒C程序
    开平方与魔数0x5F3759DF:Quake III 开源代码
    MathJax: Web 页面显示数学公式
    Notepad++ NppExport: 让你在Microsoft word 中粘贴语法高亮代码
    [转]matlab 函数三种定义方式
    机器上的几种Eclipse
    自己开发CC3000模块
    Java中的线程的生命周期大体可分为5种状态
    srand和rand的用法和联系
  • 原文地址:https://www.cnblogs.com/OFSHK/p/14733101.html
Copyright © 2011-2022 走看看