LightOJ 1224 - DNA Prefix(字典树)
来源:互联网 发布:淘宝店越来越少 编辑:程序博客网 时间:2024/04/30 06:53
LightOJ 1224 - DNA Prefix
题目大意:给定若干个字符串,找到一个前缀,前缀长度*出现次数最大值。
解题思路:对字符串集合建立字典树,然后遍历一遍,每个节点等于dep*val。
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 50005 * 50;const int sigma_size = 4;struct Tire { int sz, ans; int g[maxn][sigma_size]; int val[maxn]; void init(); int idx(char ch); void insert(char* s); void solve(int u, int d);}T;int main () { int cas; scanf("%d", &cas); int n; char w[105]; for (int kcas = 1; kcas <= cas; kcas++) { T.init(); scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%s", w); T.insert(w); } T.solve(0, 0); printf("Case %d: %d\n", kcas, T.ans); } return 0;}void Tire::init() { sz = 1; ans = val[0] = 0; memset(g[0], 0, sizeof(g[0]));}int Tire::idx (char ch) { if (ch == 'A') return 0; else if (ch == 'C') return 1; else if (ch == 'G') return 2; else return 3;}void Tire::solve(int u, int d) { ans = max(ans, d * val[u]); for (int i = 0; i < 4; i++) { if (g[u][i]) solve(g[u][i], d + 1); }}void Tire::insert(char* s) { int u = 0, n = strlen(s); for (int i = 0; i < n; i++) { int v = idx(s[i]); if (g[u][v] == 0) { val[sz] = 0; memset(g[sz], 0, sizeof(g[sz])); g[u][v] = sz++; } u = g[u][v]; val[u]++; }}
0 0
- LightOJ 1224 - DNA Prefix(字典树)
- LightOJ 1224 DNA Prefix(字典树)
- lightOJ 1244 DNA Prefix (字典树)
- LightOJ 1224 DNA Prefix
- DNA Prefix--字典树
- DNA Prefix (字典树)
- light OJ -DNA Prefix (字典树)
- 字典树(需要删除操作)——DNA Prefix ( LOJ 1224 )
- DNA Prefix (Light_1224) 动态字典树 + 模板题
- loj 1224 - DNA Prefix
- Lightoj 1129【字典树】
- lightoj1224 DNA Prefix
- DNA Sequence LightOJ
- hdu 5790 Prefix(字典树+主席树)
- hdu 5790 Prefix (字典树 + 主席树)
- [HDU5790] Prefix 字典树+主席树
- Trie(prefix tree,前缀树,字典树)
- uva 11488 - Hyper Prefix Sets(字典树)
- 画圆算法
- hadoop中mapreducer的数据输入(InputFormat)原理详解
- Find Minimum in Rotated Sorted Array II
- Linux diff与patch命令用法
- C++ Primer第七章课后编程题
- LightOJ 1224 - DNA Prefix(字典树)
- 随机性
- 图层遮罩的简单理解
- STS或eclipse安装SVN插件
- java多线程和并发编程学习总结 ----基础篇4
- 《数据结构》实验三: 栈和队列实验之实验内容2
- CLR的string的一些简单理解
- cocos2dx监听home键,锁屏,后台转前台暂停功能
- 两种常用的PHP框架解析