POJ - 2001 Shortest Prefixes

思路

在字典树标记字母出现的次数即可
当发现cnt[p] == 1时,说明这个字母前缀只出现过一次,直接返回即可

代码

#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;const int N = 1010 * 26;
int son[N][26];
int idx;
char str[N][26];
int cnt[N];void insert(char str[]) {int p = 0;for (int i = 0; str[i] != '\0'; i ++) {int u = str[i] - 'a';if(!son[p][u])son[p][u] = ++idx;p = son[p][u];cnt[p]++;}}string query(char str[]) {int p = 0;string s = "";for (int i = 0; str[i] != '\0'; i ++) {int u = str[i] - 'a';p = son[p][u];if(cnt[p] == 1){s += str[i];return s;}else {s += str[i];}}return s;
}int main() {int n = 0;while(cin >> str[n]) {insert(str[n]);n++;}for (int i = 0; i < n; i ++) {cout << str[i] << ' ' << query(str[i]) << endl;}return 0;
}

kuangbin字典树相关推荐

  1. hdu5296 01字典树

    根据二进制建一棵01字典树,每个节点的答案等于左节点0的个数 * 右节点1的个数 * 2,遍历整棵树就能得到答案. AC代码: #include<cstdio> using namespa ...

  2. BZOJ 3483 SGU505 Prefixes and suffixes(字典树+可持久化线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3483 [题目大意] 给出一些串,同时给出m对前缀后缀,询问有多少串满足给出的前缀后缀模 ...

  3. 2014百度之星 Xor Sum(字典树+贪心)

    题目在HDU_OJ Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometh ...

  4. HDU6964 I love counting (字典树+莫队)

    题意: 给定一个长度为 nnn 的序列c,qc,qc,q 次询问,每次给出l,r,a,bl,r,a,bl,r,a,b求在[l,r][l,r][l,r]中有多少种不同的值 kkk 满足 k⊕a≤b​.k ...

  5. Beautiful Subarrays (01字典树 瞎搞)

    题意: 题解: 一看问的是子序列,并且还是异或. 首先想到01字典树,再一看让你求子序列的个数,大致是想让你把这个序列进行前缀异或处理后然后再01字典树上进行操作吧. 假设01字典树往左边是0右边是1 ...

  6. CF888G Xor-MST (01字典树+MST)

    题意: 给你n个数,每个数有一个值. 问你这n个数的最小生成树为多少,两点之间的边权为异或值. 题解: 参考了洛谷上的一个题解,总觉得这样的时间复杂度会爆炸,但是确确实实没爆炸. 我们每次去合并两个点 ...

  7. Perfect Security (01字典树删除点)

    题意: 第一行给你一个n 第二行给你n个数字 分别是a[1],a[2]-a[n]. 第三行给你n个数字 分别是b[1],b[2]-b[n]. 问:第三行的序列可自由排列,要求排列之后的顺序 a[1] ...

  8. Vitya and Strange Lesson (01字典树)

    题意:给定一组数,然后对所有的数进行异或操作m次异或操作,问你每次操作后,没有出现过的最小的非负整数 题解: 首先需要一个性质(ab)c=a(bc); 所以我们没有必要对于所有的数进行异或操作. 我们 ...

  9. 奶牛异或(01字典树)

    题意: 让你找一个连续区间异或和最大,如果有相同的,则输出断点较小的. 题解: 01字典树,利用前缀和的思想进行求解,我们在插入前缀的同时,也在不断的更新最大值. 我们查询当前 二进制字符串与已经插入 ...

  10. C++ __gnu_pbds(平板电视)超详细教程(C++内置的平衡树,字典树,hash)

    整理的算法模板合集: ACM模板 目录 一.平衡树 例题:luogu P3369 [模板]普通平衡树 1. `rb_tree_tag`版 2. `splay_tree_tag`版 功能不够?自己添加! ...

最新文章

  1. 三星叫停公司分拆重组计划:否认李在镕行贿
  2. 【驱动】使用结构体 file_operations封装驱动设备的操作 | 结构体初始化
  3. Ajax:如何运用updatepanle进行局部刷新
  4. 课后作业-阅读任务-阅读笔记-2
  5. 机器学习算法平台alink_Alink漫谈(十二) :在线学习算法FTRL 之 整体设计
  6. 190829课堂母版与子版
  7. SQL 学习笔记一 入门
  8. jq使用教程04_高校版教程
  9. Trip to Canvas(1)
  10. hpm1005能扫描不能打印_惠普M1005怎么只能打印复印不能扫描了?
  11. 撩妹奇招——修改Excel单元格默认格式
  12. 阿里云网盘,图什么?
  13. android 双卡 默认流量 卡,双卡双待功能怎么用?如何设置默认流量卡?
  14. 我的世界服务器没有显示物品ID,我的世界物品ID不显示怎么办
  15. 【Vue】路由 —— 黑马程序员
  16. java用for打印正方形_Java程序为给定的整数打印正方形图案
  17. 北上广深杭30K试题:如何分配JVM内存模型?
  18. 安装好Discuz!NT论坛后首页是一片空白!解决办法
  19. 内存取证之volatility及案例演示
  20. 用dw给html动态时间代码,肿么在Dreamweaver中动态显示时间

热门文章

  1. 2019年税务师进行继续教育?
  2. html滚动字幕制作教程,dreamweaver教程:怎么制作网页滚动字幕
  3. echarts 图表无数据/空数据 展示“暂无数据”
  4. 系统集成项目管理工程师10《项目干系人管理》
  5. Visual Studio Code编辑器的实用插件和工作中实用的技巧
  6. 性能测试adb常用命令
  7. cad卸载_CAD卸载不干净,如何清理CAD注册表
  8. 【教程】如何在C#中创建PDF417条码
  9. 北京市常用电话号码表
  10. 哈希表实现电话号码查询系统