考场摆烂写了个 n3 的暴力算法(排序是桶排,判断是枚举),然后 AC 了
求大佬看看是数据太水还是估的时间复杂度有问题
#include <bits/stdc++.h>
using namespace std;
int n,m;
char a[3005],x[3005][3005],y[3005][3005];
void tsort(int k){
static int t[129];
memset(t,0,sizeof(t));
for(int i=0;i<m;i++){
t[a[i]]++;
}
int p=0;
for(char i='a';i<='z';i++){
for(int j=1;j<=t[i];j++){
x[k][p++]=i;
}
}
p=0;
for(char i='z';i>='a';i--){
for(int j=1;j<=t[i];j++){
y[k][p++]=i;
}
}
}
char check(int i){
for(int j=1;j<=n;j++){
if(i==j) continue;
if(strcmp(x[i],y[j])>=0){
return '0';
}
}
return '1';
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a;
tsort(i);
}
for(int i=1;i<=n;i++){
putchar(check(i));
}
cout<<endl;
return 0;
}