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\) 个字符串,并最小化字典序最大的字符串。
题解:逐个枚举。