Codeforce 1335C - Two Teams Composing 统计技能种类数量+统计同一技能最大数量

Posted riotian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforce 1335C - Two Teams Composing 统计技能种类数量+统计同一技能最大数量相关的知识,希望对你有一定的参考价值。

[codeforces 1335C] Two Teams Composing 统计技能种类数量+统计同一技能最大数量

https://codeforces.com/contest/1335/problem/C

7
4 2 4 1 4 3 4
统计技能种类数量        4种不同技能
统计同一技能最大数量    技能1(数量1) 技能2(数量1) 技能3(数量1) 技能4(数量4)
 
选出 技能4(数量4) 作为  第2组
扣除技能4,还有4-1=3种不同技能 作为  第1组
 
发现,第2组数量4,第1组数量3
输出结果为3
 
 
5
2 1 5 4 3
统计技能种类数量        5种不同技能
统计同一技能最大数量    技能1(数量1) 技能2(数量1) 技能3(数量1) 技能4(数量1) 技能5(数量1)
 
选出 技能1(数量1) 作为  第2组
扣除技能1,还有5-1=4种不同技能 作为  第1组
 
发现,第2组数量1,第1组数量4
输出结果为1
 
1
1
统计技能种类数量        1种不同技能
统计同一技能最大数量    技能1(数量1)
 
选出 技能1(数量1) 作为  第2组
扣除技能1,还有1-1=0种不同技能 作为  第1组
 
发现,第2组数量1,第1组数量0
输出结果为0
 
4
1 1 1 3
统计技能种类数量        2种不同技能
统计同一技能最大数量    技能1(数量3)
 
选出 技能1(数量3) 作为  第2组
扣除技能1,还有2-1=1种不同技能 作为  第1组
 
发现,第2组数量3,第1组数量1
此时,可让第2组数量3,匀出1个数量给第1组
更新后的数据,第2组数量2,第1组数量2
输出结果为2
#include<bits/stdc++.h>
using namespace std;
#define ios ios::sync_with_stdio(false);cin.tie(0);
const int maxx = 2e5 + 10;
int vis[maxx], a[maxx], n;
int main() {
    //freopen("in.txt", "r", stdin);
    IOS;
    int T; cin >> T;
    while (T--) {
        cin >> n;
        memset(vis, 0, sizeof(vis));
        for (int i = 1; i <= n; ++i)cin >> a[i], vis[a[i]]++;
        int Max = 0, Min = 0;
        for (int i = 1; i <= n; ++i) {
            Max = max(Max, vis[i]);
            if (vis[i] != 0) Min++;
        }
        Min -= 1;
        int ans = min(Min, Max);
        if (ans <= Max - 2)ans++;//如果Max 比 ans 大于2 说明还能再加一
        cout << ans << endl;
    }
    return 0;
}

以上是关于Codeforce 1335C - Two Teams Composing 统计技能种类数量+统计同一技能最大数量的主要内容,如果未能解决你的问题,请参考以下文章

英文绘本分享|Ruby’s Tea For Two《露比的两人茶话会》

codeforce题解在哪

Codeforces Round #479 (Div. 3)

简单有效的源码加密算法-TEA和XTEA算法

基于FPGA的TEA算法的VHDL实现

codeforce 621B Wet Shark and Bishops