POJ 3080 Blue Jeans (暴力)
2015-10-30 15:28
411 查看
题意:
求所有串最长的公共子串,多解输出字典序最小的
分析:
数据小直接按题意暴力,把找子串部分改成kmp也可以
代码:
求所有串最长的公共子串,多解输出字典序最小的
分析:
数据小直接按题意暴力,把找子串部分改成kmp也可以
代码:
// // Created by TaoSama on 2015-10-30 // Copyright (c) 2015 TaoSama. All rights reserved. // //#pragma comment(linker, "/STACK:1024000000,1024000000") #include <algorithm> #include <cctype> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <iomanip> #include <iostream> #include <map> #include <queue> #include <string> #include <set> #include <vector> using namespace std; #define pr(x) cout << #x << " = " << x << " " #define prln(x) cout << #x << " = " << x << endl const int N = 1e5 + 10, INF = 0x3f3f3f3f, MOD = 1e9 + 7; int n; string s[15]; int main() { #ifdef LOCAL freopen("C:\\Users\\TaoSama\\Desktop\\in.txt", "r", stdin); // freopen("C:\\Users\\TaoSama\\Desktop\\out.txt","w",stdout); #endif ios_base::sync_with_stdio(0); int t; cin >> t; while(t--) { cin >> n; for(int i = 1; i <= n; ++i) cin >> s[i]; string ans; for(int sz = 60; sz >= 3; --sz) { for(int st = 0; st + sz - 1 < 60; ++st) { bool ok = true; string cur = s[1].substr(st, sz); for(int i = 2; i <= n; ++i) { if(s[i].find(cur) == string::npos) { ok = false; break; } } if(!ok) continue; if(!ans.size() || cur < ans) ans = cur; } if(ans.size()) break; } if(ans.size()) cout << ans << '\n'; else cout << "no significant commonalities\n"; } return 0; }
相关文章推荐
- 用fail2ban阻止SSH和VSFTP暴力破解密码
- 2015BJOI day1第三题 糖果candy
- 4495: Least Prime factor 找到最小质因子P的第N小正整数
- 暴力枚举法求最大连续和
- POJ 2965.The Pilots Brothers' refrigerator
- POJ 1753.Flip Game
- POJ 3295.Tautology
- 没参加的2015百度之星——数矩形
- poj 3279 Fliptile
- Birthday Cake——直线分割
- Spiral——找规律暴力
- POJ 1166&IOI 1994 The blocks 暴力枚举 解题报告
- hdu 1248
- LCM Challenge(暴力)
- 小晴天老师系列——竖式乘法(暴力)
- URAL 1786 Sandro's Biography
- URAL 1788 On the Benefits of Umbrellas
- URAL 1792 Hamming Code
- URAL 1794 Masterpieces of World Architecture
- URAL 1796 Amusement Park