经过3个月,我又做了这道题应为菜,还是没做出了
感觉这洛谷的测评机有问题吧???
前WA的代码:
#include<iostream>
#include<cstdio>
using namespace std;
char str[50][50];
int n,t=1;
int main(){
cin>>n;
for(int i=0;i<n;i++) scanf("%s",str[i]);
for(int i=0;i<n;i++){
for(int j=0;j<i;j++){
for(int k=0;str[j][k]&&str[i][k];k++){
if(str[j][k]!=str[i][k]){
if(t<=k) t=k+1;
break;
}
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<t;j++) cout<<str[i][j];
cout<<"\n";
}
return 0;
}
现在TLE的代码:
#include<iostream>
using namespace std;
char Str[60][60];
bool G[60][60],Flag;
int N;
int main(){
cin>>N;
for(register int i=0;i<N;i++) cin>>Str[i];
int i=0;
while(!Flag){
Flag=1;
for(register int j=0;j<N;j++)
for(register int k=j+1;k<N;k++)
if(Str[j][i]!=Str[k][i])
G[j][k]=1;
for(register int j=0;j<N;j++){
for(register int k=j+1;k<N;k++)
if(!G[j][k]){
Flag=0;
break;
}
if(!Flag) break;
}
}for(register int j=0;j<N;j++){
for(register int k=0;k<=i;k++) cout<<Str[j][k];
cout<<"\n";
}return 0;
}
蒟蒻现在很是蒙,求大佬解释TLE的原因 @grass8cow @idgg004