| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
妈呀,,,wa到死。。。字典序。。。表示很悲观,贴代码留恋。#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int INF = 10000000; char t[2000][70]; bool LCS(char t[], char a[]){ for(int i = 0; i<60; i++){ if(a[i] == t[0]){ int k = 0, m = i; while(a[m] == t[k] && a[m] != '\0' && t[k] != '\0'){ m++; k++; } if(k == strlen(t)) return true; } } return false; } int main(){ int T; scanf("%d",&T); while(T--){ int m; scanf("%d",&m); char s[70]; cin>>s; char a[15][70]; for(int i = 1; i<m; i++) cin>>a[i]; int k = 0; for(int i = 0; i<60; i++){ for(int j = 1; j<=60-i; j++){ strncpy(t[k],s+i,j); t[k++][j] = '\0'; } } //cout<<t[59]<<endl; char ans[70]; memset(ans, '\0', sizeof(ans)); int ansl = 0; for(int i = 0; i<k; i++){ int len = strlen(t[i]); bool flag = true; for(int j = 1; j<m; j++){ if(!LCS(t[i],a[j])) flag = false; } if(ansl < len && flag){ strcpy(ans, t[i]); ansl = len; } if(ansl == len && flag){ if(strcmp(ans, t[i]) > 0) strcpy(ans, t[i]); } } if(ansl<3) printf("no significant commonalities\n"); else printf("%s\n",ans); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator