再次入坑
查看原帖
再次入坑
297831
idgg007楼主2020/7/20 19:40

经过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

2020/7/20 19:40
加载中...