题目:http://poj.org/problem?id=3080
水题,暴搜
#include <iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<stack>
#include<queue>
#include<iomanip>
#include<cmath>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int t,i,j,k,n,f,cnt;
char s[][],a[],b[];
cin>>t;
while(t--)
{
f=; memset(b,,sizeof(b)); b[]='\0';
cin>>n;
getchar();
for(i=; i<n; i++)
cin>>s[i];
for(i=; i<; i++)
{
for(j=i+; j<; j++)
{
cnt=; memset(a,,sizeof(a));
for(k=i; k<=j; k++)
a[cnt++]=s[][k];
a[k]='\0';
for(k=; k<n; k++)
{
if(strstr(s[k],a)==NULL)
break;
if(k==n-)
{
f=;
if(strlen(a)>strlen(b))
strcpy(b,a);
if(strlen(a)==strlen(b)&&strcmp(a,b)<)
strcpy(b,a);
}
}
}
} if(f==) cout<<"no significant commonalities"<<endl;
else cout<<b<<endl;
}
return ;
}