zoukankan      html  css  js  c++  java
  • Codeforces Round #205 (Div. 2) : B

    如果某个数出现的次数大于或等于2次,那么平均分配到两个容器里面;

    这里利用一个k来使得当出现次数为奇数时候分配得更加均匀;

    剩下的就平均分配到两个容器里;

    代码:

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int a[220],b[220],f[110],s,k,n;
     5 int main()
     6 {
     7     cin >> n;
     8     for(int i=0;i<2*n;i++)
     9     {
    10         cin >> a[i];
    11         f[a[i]]++;
    12     }
    13     for(int i=0;i<110;i++)
    14         if(f[i]>=2)
    15         {
    16             s+=f[i]-2;
    17             for(int j=0;j<2*n;j++)
    18             {
    19                 if(a[j]==i)
    20                 {
    21                     b[j]=(k%2)+1;
    22                     k++;
    23                 }
    24             }
    25         }
    26     if(s%2==0)cout<<((2*n-s)/2)*((2*n-s)/2)<<endl;
    27     else cout<<((2*n-s-1)/2)*((2*n-s+1)/2)<<endl;
    28     for(int i=0;i<2*n;i++)
    29         if(b[i]==0)
    30         {
    31             b[i]=(k%2)+1;
    32             k++;
    33         }
    34     for(int i=0;i<n*2;i++)
    35         cout << " " << b[i];
    36     return 0;
    37 }
    View Code
  • 相关阅读:
    Qt 添加外部库文件
    实例属性的增删改查
    面向对象2 类属性的增删改查
    面向对象
    hashlib模块
    configparser模块
    logging模块
    re模块2
    计算器 暂时没解决小数问题
    re正则表达式
  • 原文地址:https://www.cnblogs.com/yours1103/p/3365804.html
Copyright © 2011-2022 走看看