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 |
多谢大神,附代码In Reply To:Re:试试这个测试数据 "AAAB" ," BAAA",或许会有帮助 Posted by:black_snow at 2009-07-21 09:40:01 #include <iostream> #include <cstring> #include <algorithm> using namespace std; int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a%b); } int main() { char str1[500], str2[500]; int i, j, len1, len2, count, temp; while (cin >> str1) { if (strcmp(str1,"-1")==0) break; cin >> str2; temp = 0; len1 = strlen(str1); len2 = strlen(str2); for (i = 0; i<len1; i++){ count = 0; for (j = 0; i + j<len1&&j<len2; j++) if (str2[j] == str1[i + j]) count++; if (count > temp) temp = count; } for (i = 0; i<len2; i++){ count = 0; for (j = 0; i + j<len2&&j<len1; j++) if (str1[j] == str2[i + j]) count++; if (count > temp) temp = count; } if (temp == 0){ cout << "appx(" << str1 << ',' << str2 << ") = " << temp << endl; continue; } if (2 * temp == (len1 + len2)){ cout << "appx(" << str1 << ',' << str2 << ") = " << 1 << endl; continue; } cout << "appx(" << str1 << ',' << str2 << ") = " << 2 * temp / gcd(2 * temp, len1 + len2) << '/' << (len1 + len2) / gcd(2 * temp, len1 + len2) << endl; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator