文章标题
来源:互联网 发布:淘宝自主访问 编辑:程序博客网 时间:2024/06/03 21:47
uva 11468
#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<string>#include<map>#include<queue>#include<cstdlib>using namespace std;int T[15000][26]={0}, last[15000], val[15000], f[15000], cnt[155];map<string, int> a;string s[155];int sz = 0;void _insert(string s, int v){ int u = 0; for(int i = 0; i < s.length() ; i++){ int c = s[i] - 'a'; if (!T[u][c]){ T[u][c] = ++sz; val[sz] = 0; } u = T[u][c]; } val[u] = v;} void _build(){ queue<int> q; for (int i = 0; i < 26; i++){ int u = T[0][i]; if (u){ q.push(u); f[u] = last[u] = 0; } } while (!q.empty()){ int h = q.front(); q.pop(); for (int i = 0; i < 26; i++){ int u = T[h][i], v = f[h]; if (!u){ T[h][i] = T[v][i]; continue; }q.push(u); //while (v && !T[v][i]) v = f[v]; f[u] = T[v][i]; last[u] = val[f[u]] ? f[u] : last[f[u]]; } }}char k[1000010];void print(int j){ if (j){ cnt[val[j]]++; print(last[j]); }}void _search(){ int m = strlen(k), u = 0; for (int i = 0; i < m; i++){ int c = k[i] - 'a'; u = T[u][c]; if (val[u]) print(u); else if (last[u]) print(last[u]); }}int main(){ int n; while (cin>>n && n){ memset(T, 0, sizeof(T)); memset(last, 0, sizeof (last)); memset(f, 0, sizeof(f)); memset(val, 0, sizeof(val)); memset(cnt, 0, sizeof(cnt)); a.clear(); for (int i = 1; i <= n; i++){ cin>>s[i]; _insert(s[i], i); a[s[i]] = i; } _build(); scanf("%s", k); _search(); int best = -1; //cout<<cnt[a["haha"]]<<endl<<endl; for (int i = 1; i <= n;i ++) best = max(best, cnt[i]); printf("%d\n", best); for (int i = 1; i <= n; i++){ if (cnt[a[s[i]]] == best) cout<<s[i]<<'\n'; } } return 0;}
阅读全文
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 集合总结
- 51Nod
- ssh
- Plantuml产品用例图实例用法
- java即时通信时间不同步 经检查 是用日历插件产生的
- 文章标题
- JAVA使用swing/awt实现界面
- JSTL的使用和语法规则
- Linux-QT4.7 实现串口通信
- 解决在spring配置文件中包扫描无效问题
- Centos 不联网安装配置Opencv
- 继承 重写 自动转型/ 多态
- Tomcat启动流程解析
- 第六篇:微服务部署策略的选择