poj3080

来源:互联网 发布:华为5a手机壳 淘宝 编辑:程序博客网 时间:2024/05/22 23:33

  这道题如果把测试数据做得强大的话,估计很难有人做好。但是数据比较小,蛮力法即可解决。郁闷的是,敲的时候忽略了一个“=”号

,白白浪费了几次submit.

 poj3080代码:

#include<string>#include<iostream>#include<fstream>using namespace std;#define NotFound 4294967295string data[10];int m;//const int NUM=60;int solve(){int NUM=data[0].length();string output="";     for(int i=3;i<=NUM;i++)     {          bool flag=false;  for(int j=0;j+i<=NUM;j++)  {  string sub_str=data[0].substr(j,i); int k; for( k=1;k<m;k++)  {  if(data[k].find(sub_str)==NotFound)  break;    } if(k==m) { if(i>output.length()) {                             output=sub_str;   flag=true; } else if(output>sub_str) { output=sub_str; flag=true; } }  }  if(flag)  ;  else   break;     }     if(output=="")     cout<<"no significant commonalities"<<endl;     else     cout<<output<<endl;}int main(){freopen("input.txt","r",stdin);int n;cin>>n;while(n--){cin>>m;for(int i=0;i<m;i++){cin>>data[i];}solve();}return 0;}



原创粉丝点击