#include<bits/stdc++.h>
using namespace std;
char s[3001][3001];
char shs[3001][3001];
char sls[3001][3001];
bool asmaller(string a,string b,int len){
for(int i=0;i<len;i++){
if(a[i]==b[i]) continue;
else if(a[i]<b[i]) return true;
else return false;
}
return false;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>s[i];
strcpy(sls[i],s[i]);
sort(sls[i],sls[i]+m,greater<char>());
strcpy(shs[i],sls[i]);
reverse(shs[i], shs[i]+m);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(asmaller(shs[i],sls[j],m) &&i!=j){
cout<<0;
break;
}
if(j==n){
cout<<1;
break;
}
}
}
}
#include<bits/stdc++.h>
using namespace std;
char s[3001][3001];
char shs[3001][3001];
char sls[3001][3001];
int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>s[i];
strcpy(sls[i],s[i]);
sort(sls[i],sls[i]+m,greater<char>());
strcpy(shs[i],sls[i]);
reverse(shs[i], shs[i]+m);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(strcmp(shs[i],sls[j])>0 &&i!=j){
cout<<0;
break;
}
if(j==n){
cout<<1;
break;
}
}
}
}
asmaller和strcmp的复杂度不都是O(n)吗?
为什么第一个会被卡?(而且相差很远,第一个4000ms,第二个150ms)。求解答。