题意是给你一个n,k,串;
n是串的长度,k是要把这个串分成的个数;
求打乱顺序随便分成k个后,最小的最大字典序的串;
这个是思路:
先排序一遍
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<functional>
using namespace std;
int t,n,k;
int a[100023];
char ch;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d %d",&n,&k);
for(int i=1;i<=n;i++){scanf(" %c",&ch);a[i]=ch-'a'+1;}
sort(a+1,a+1+n, less<int>() );
if(a[k]!=a[1])
printf("%c",'a'+a[k]-1);
else{
if(a[k+1]==a[n]){
for(int i=1;i<=n;i+=k)
printf("%c",'a'+a[i]-1);
}
else {
for(int i=k;i<=n;i++)
printf("%c",a[i]-1+'a');
}
}
printf("\n");
}
}