Codeforces Round #638 (Div. 2)

https://codeforces.com/contest/1348

A - Phoenix and Balance

最大的那个一个顶全部,所以它绝对是配最小的那些。

B - Phoenix and Beauty

把每个元素扩充到 \(k\) 个一组,同时这一组元素是原来的所有种类的去重结果。

int a[105];
int b[105];

void TestCase() {
    int n, k;
    scanf("%d%d", &n, &k);
    for(int i = 1; i <= n; ++i) {
        scanf("%d", &a[i]);
        b[i] = a[i];
    }
    sort(b + 1, b + 1 + n);
    int m = unique(b + 1, b + 1 + n) - (b + 1);
    if(m > k) {
        puts("-1");
        return;
    }
    while(m < k)
        b[++m] = 1;
    printf("%d\n", n * k);
    for(int i = 1; i <= n; ++i) {
        for(int j = 1; j <= k; ++j)
            printf("%d ", b[j]);
    }
    puts("");
    return;
}

*C - Phoenix and Distribution

题意:给一个大小为 \(n\) 的小写字母的可重字符集,要求分成 \(k\) 个字符串,并最小化字典序最大的字符串。

题解:逐个枚举。

posted @ 2020-05-02 14:05  KisekiPurin2019  阅读(173)  评论(0编辑  收藏  举报