UVa11488 Hyper Prefix Sets
来源:互联网 发布:mysql unique查询 编辑:程序博客网 时间:2024/05/29 13:23
1.题目描述:点击打开链接
2.解题思路:本题用Trie解决。根据题意,我们需要维护一条路径上每个结点的字符出现的次数,可以边插入边统计。接下来就是遍历每一个字符串了,遍历的时候更新ans即可。
3.代码:
#include<iostream>#include<algorithm>#include<cassert>#include<string>#include<sstream>#include<set>#include<bitset>#include<vector>#include<stack>#include<map>#include<queue>#include<deque>#include<cstdlib>#include<cstdio>#include<cstring>#include<cmath>#include<ctime>#include<cctype>#include<complex>#include<functional>#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;#define rep(i,n) for(int i=0;i<(n);i++)#define me(s) memset(s,0,sizeof(s))#define pb push_back#define lid (id<<1)#define rid (id<<1|1)typedef long long ll;typedef pair<int,int> P;const int maxn=50000+10;const int maxlen=200;const int sigma_size=2;int ans;struct Trie{ int ch[maxlen*maxn][sigma_size]; int val[maxlen*maxn]; //维护每个结点的字符出现的次数 int sz; void clear(){sz=1;me(ch[0]);} int idx(char c){return c-'0';} void insert(char*s) { int n=strlen(s),u=0; for(int i=0;i<n;i++) { int c=idx(s[i]); if(!ch[u][c]) { me(ch[sz]); val[sz]=0; ch[u][c]=sz++; } u=ch[u][c]; val[u]++; } } void query(char*s) { int u=0,n=strlen(s); for(int i=0;i<n;i++) { int c=idx(s[i]); u=ch[u][c]; ans=max(ans,(i+1)*val[u]); } }};Trie solver;char text[maxn][210];int main(){ int T; scanf("%d",&T); while(T--) { int n; scanf("%d",&n); solver.clear(); for(int i=0;i<n;i++) { scanf("%s",text[i]); solver.insert(text[i]); } ans=0; for(int i=0;i<n;i++) { solver.query(text[i]); } printf("%d\n",ans); }}
0 0
- UVa11488 Hyper Prefix Sets
- UVa11488-Hyper Prefix Sets(trie树)
- uva11488 Hyper Prefix Sets(Trie树)
- UVA11488——Hyper Prefix Sets(字典树,最长前缀)
- Uva-11488-Hyper Prefix Sets
- UVa:11488 Hyper Prefix Sets
- UVA - 11488 Hyper Prefix Sets
- uva 11488 Hyper Prefix Sets
- UVa 11488 - Hyper Prefix Sets
- UVA 11488 Hyper Prefix Sets
- uva 11488 - Hyper Prefix Sets(Trie)
- UVA 11488 Hyper Prefix Sets(Trie)
- UVA 11488,Hyper Prefix Sets,Trie树
- UVa 11486 Hyper Prefix Sets 字典树裸题
- UVA 11488 - Hyper Prefix Sets(Trie)
- UVaOJ-11488-Hyper Prefix Sets 解题报告
- Hyper Prefix Sets - UVa 11488 Trie树
- uva 11488 - Hyper Prefix Sets(字典树)
- vtkImageData vtkDicomImageReader
- Java 指定日期是星期几
- 饼状图带点击特效
- .NET C# 支付宝条码支付接口
- OpenWRT 修改dts文件配置串口uart ttyS0
- UVa11488 Hyper Prefix Sets
- Mysql优化
- iOS开发之UIlabel多行文字自动换行 (自动折行)
- iOS 拨打电话的几种类型
- 页面渲染
- 为什么HDFS一个块的大小是64MB
- C++primer习题答案中关于迭代器使用的一个错误
- HIVE 调优方法大全
- 黑马程序员--JAVA中的多线程