题意:

有n和DNA序列,求出他们中公共前缀长度和有相同公共前缀DNA序列乘积的最大值。

解析:

这题用trie来搞,用trie存储所有的DNA序列,然后每个节点有个val值,还有一个length表示的是存储以该节点结尾的DNA序列的数目,最后求出length*val最大的,就是最终答案。

mymy codecode

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;const int sigma_size = 4;
const int maxnode = 50005 * 50;
int val[maxnode], length[maxnode];
int ch[maxnode][sigma_size];
int mp[256];struct Trie {int sz;Trie() { sz = 1; memset(ch[0], 0, sizeof(ch[0]));}int idx(char c) { return mp[c]; }void insert(char *s) {int u = 0, n = strlen(s);   for(int i = 0; i < n; i++) {int c = idx(s[i]);if(!ch[u][c]) {memset(ch[sz], 0, sizeof(ch[sz]));length[sz] = i+1;val[sz] = 0;ch[u][c] = sz++;}u = ch[u][c];val[u]++;}}
};char str[55];
int n;void setMap() {mp['A'] = 0; mp['C'] = 1;mp['G'] = 2; mp['T'] = 3;
}int main() {setMap();int T, cas = 1;scanf("%d", &T);while(T--) {Trie trie;scanf("%d", &n);for(int i = 0; i < n; i++) {scanf("%s", str);trie.insert(str);}int ans = 0;for(int i = 1; i < trie.sz; i++) {ans = max(ans, length[i]*val[i]);}printf("Case %d: %d\n", cas++, ans);}return 0;
}

LightOJ 1224 DNA Prefix(字典树)相关推荐

  1. LeetCode 14. Longest Common Prefix字典树 trie树 学习之 公共前缀字符串

    所有字符串的公共前缀最长字符串 特点:(1)公共所有字符串前缀 (好像跟没说一样...) (2)在字典树中特点:任意从根节点触发遇见第一个分支为止的字符集合即为目标串 参考问题:https://lee ...

  2. LeetCode Implement Trie (Prefix Tree)(字典树)

    问题:实现具有insert,search,startsWith方法的字典树 思路:就是要实现Trie数据结构 具体代码参考: https://github.com/wuli2496/OJ/tree/m ...

  3. HDU - 5790 Prefix(主席树+字典树)

    题目链接:点击查看 题目大意:给出 n 个字符串,再给出 m 次询问,每次询问需要输出区间 [ l , r ] 内的所有字符串有多少个不同的前缀,要求算法强制在线 题目分析:统计字符串的前缀,不难想到 ...

  4. Prefix HDU - 5790 字典树 + 主席树

    传送门 文章目录 题意: 思路: 题意: 给你nnn个串,每次询问一个区间,返回这个区间的串的不同的前缀个数,强制在线. 思路: 碰到字符串前缀的问题,我们自然的想到用字典树来解决. 对于每个串,我们 ...

  5. Poj 2001 Shortest Prefix(字典树模板)

    字典树入门题...... 只需在对应结点记录num值,找到num为1时的前缀,是唯一前缀(只是该单词的前缀),或者一直找找到该单词结尾. #include <iostream> #incl ...

  6. 最优雅的数据结构之一——字典树Trie(Java)

    什么是Trie? 又称单词查找树: 又叫前缀树(prefix tree): Trie树,是一种树形结构,是一种哈希树的变种. 作用: 用以较快速地进行单词或前缀查询: 用于快速检索.统计,排序和保存大 ...

  7. [ACM] hdu 1671 Phone List (字典树)

    [ACM] hdu 1671 Phone List (字典树) Phone List Problem Description Given a list of phone numbers, determ ...

  8. Trie(前缀树/字典树)及其应用

    from:https://www.cnblogs.com/justinh/p/7716421.html Trie,又经常叫前缀树,字典树等等.它有很多变种,如后缀树,Radix Tree/Trie,P ...

  9. Go语言字典树定义及实现

    // trie 字典树实现 package Algorithm// 字典树节点 type TrieNode struct {children map[interface{}]*TrieNodeisEn ...

  10. [poj 2001] Shortest Prefixes (字典树)

    Language: Shortest Prefixes Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 20503 Accepte ...

最新文章

  1. css技巧之如何实现ul li边框重合
  2. STM32F0库函数初始化系列:PWM输出
  3. yuv420,yuv420p,yuv420sp,nv12,nv21,I420,YV12概念区别
  4. C++实现has-a关系的两种方法
  5. Quartz2D简单绘制之不规则形状
  6. 牛客网dp专题 数位dp
  7. 我的方法在这方面看起来很大吗?
  8. Java Web学习笔记11:JSTL与EL
  9. RandomHelper-随机数辅助类
  10. oracle传输表空间功能测试(含详细过程)
  11. Python 机器学习经典实例
  12. C语言实现去掉字符串中重复的字符
  13. NFC技术 (二) -硬件设计
  14. 服务器CPU型号数字详解,一文读懂CPU的型号标识
  15. 基于ThinkPHP6搭建的后台管理系统
  16. 剖析拒绝服务攻击-SYN拒绝服务(转)
  17. APP测试面试题汇总基础+进阶
  18. 许奔创新社-第26问:专家们创新时为何需要外行来指手画脚?
  19. MT5 EA交易期货-市价单开仓平仓
  20. 新华三半导体:初芯如磐,笃行致远

热门文章

  1. 不支持虚拟化的cpu如何开VM虚拟机(不支持,即“主机不支持Intel VT-x,不是支持Intel VT-x,但Intel VT-x禁处于禁用状态!!!!!!)
  2. python中如何画图中图
  3. 微信小程序报错“对应的服务器证书无效”
  4. 完数什么意思_【寒假预习】人教版五年级数学(下册)知识点学习要点
  5. 深大uooc大学生心理健康章节答案第二章
  6. 程序员之路:Gmail邮箱客户端配置
  7. 深度神经网络算法有哪些,深度神经网络算法原理
  8. qq号被盗是什么原理_手机被盗之前(和之后)应该做什么
  9. 关于使用ajax动态输出cnzz统计代码的问题
  10. eclipseme插件安装的一点心得