题意:还是比较好理解

分析:把每个单词反转,建字典树,然后暴力匹配加密串

注:然后我就是特别不理解,上面那种能过,而且时间很短,但是我想反之亦然啊

我一开始写的是,把加密串进行反转,然后单词正着建字典树,然后就TLE了,反着写就能过

真是百思不得解,然后我猜测可能是单词数目比较少

  1. #include <cstdio>
  2. #include <iostream>
  3. #include <cstring>
  4. #include <cstdlib>
  5. #include <vector>
  6. #include <string>
  7. #include <algorithm>
  8. using namespace std;
  9. typedef long long LL;
  10. const int N=+;
  11. char s[];
  12. char str[][];
  13. int len[];
  14. int trie[N][],mk[N];
  15. int ans[],tot,cnt,m,n;
  16. void add(int x)
  17. {
  18. int now=;
  19. for(int i=len[x]-; i>=; --i)
  20. {
  21. char tmp=str[x][i];
  22. if(tmp<'a'||tmp>'z')
  23. tmp+='a'-'A';
  24. int p=tmp-'a';
  25. if(!trie[now][p])
  26. trie[now][p]=++cnt;
  27. now=trie[now][p];
  28. }
  29. mk[now]=x;
  30. }
  31. void solve(int pos)
  32. {
  33. if(pos==n)
  34. {
  35. for(int i=; i<tot; ++i)
  36. printf("%s ",str[ans[i]]);
  37. printf("%s\n",str[ans[tot]]);
  38. exit();
  39. }
  40. int now=;
  41. for(int i=pos+; i<=n; ++i)
  42. {
  43. int p=s[i]-'a';
  44. now=trie[now][p];
  45. if(!now)break;
  46. if(mk[now])
  47. {
  48. ans[++tot]=mk[now];
  49. solve(pos+len[mk[now]]);
  50. --tot;
  51. }
  52. }
  53. }
  54. int main()
  55. {
  56. scanf("%d%s",&n,s+);
  57. // for(int i=1; i<=n/2; ++i)
  58. // swap(s[i],s[n-i+1]);
  59. scanf("%d",&m);
  60. for(int i=; i<=m; ++i)
  61. {
  62. scanf("%s",str[i]);
  63. len[i]=strlen(str[i]);
  64. add(i);
  65. }
  66. solve();
  67. return ;
  68. }

Codeforces 633 C Spy Syndrome 2 字典树的更多相关文章

  1. Manthan, Codefest 16 C. Spy Syndrome 2 字典树 + dp

    C. Spy Syndrome 2 题目连接: http://www.codeforces.com/contest/633/problem/C Description After observing ...

  2. Codeforces 633C Spy Syndrome 2 | Trie树裸题

    Codeforces 633C Spy Syndrome 2 | Trie树裸题 一个由许多空格隔开的单词组成的字符串,进行了以下操作:把所有字符变成小写,把每个单词颠倒过来,然后去掉单词间的空格.已 ...

  3. Codeforces 455B A Lot of Games(字典树+博弈)

    题目连接: Codeforces 455B A Lot of Games 题目大意:给定n.表示字符串集合. 给定k,表示进行了k次游戏,然后是n个字符串.每局開始.字符串为空串,然后两人轮流在末尾追 ...

  4. Codeforce 633.C Spy Syndrome 2

    C. Spy Syndrome 2 time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  5. Educational Codeforces Round 12 E. Beautiful Subarrays 字典树

    E. Beautiful Subarrays 题目连接: http://www.codeforces.com/contest/665/problem/E Description One day, ZS ...

  6. 【codeforces 514C】Watto and Mechanism(字典树做法)

    [题目链接]:http://codeforces.com/contest/514/problem/C [题意] 给你n个字符串; 然后给你m个询问;->m个字符串 对于每一个询问字符串 你需要在 ...

  7. codeforces 1285D. Dr. Evil Underscores(字典树)

    链接:https://codeforces.com/problemset/problem/1285/D 题意:给n个数a1,a2,a3.....an,找到一个数X,使得X 异或所有的ai ,得到的ma ...

  8. Codeforces 948D Perfect Security 【01字典树】

    <题目链接> 题目大意: 给定两个长度为n的序列,可以改变第二个序列中数的顺序,使得两个序列相同位置的数异或之后得到的新序列的字典序最小. 解题分析: 用01字典树来解决异或最值问题.因为 ...

  9. Codeforces 514C Watto and Mechanism(字典树)

    题目链接  Watto and Mechanism 题意  给出$n$个串(相当于字典),然后给出$m$个询问. 每个询问以字符串的形式给出,你需要改变这个字符串中的任意一个字符 (必须改变且只能改变 ...

随机推荐

  1. HTML网页中添加音频视频动画...(转)

    在网页中适当嵌入音频和视频能够充分显示网页的多媒体特性,特别是随着宽带网的普及,使得网络广播和网络视频成为现实,网页音频和视频的重要性也日益突显.具体来说,网页音频和视频的嵌入方法主要有三种: 一.b ...

  2. hdu 4717 The Moving Points(第一个三分题)

    http://acm.hdu.edu.cn/showproblem.php?pid=4717 [题意]: 给N个点,给出N个点的方向和移动速度,求每个时刻N个点中任意两点的最大值中的最小值,以及取最小 ...

  3. C# 5.0 TAP 模式下的HTTP Get和Post

    标题有点瘆人,换了工作之后很少写代码了,之前由于签了保密协议,不敢把代码拿出来分享给大家,只能摘抄网上的, 今斗胆拿出来晒晒,跪求指点,直接上代码吧 public class HTTPHelper : ...

  4. HDFS 的可靠性

    HDFS 的可靠性主要有一下几点: 冗余副本策略 机架策略 心跳机制 安全模式 效验和 回收站 元数据保护 快照机制 1.冗余副本策略 可以在hdfs-site.xml中设置复制因子指定副本数量 所有 ...

  5. SpringJUnit4加载类目录下(src)和WEF-INF目录下的配置文件

    路径说明: 一.加载类目录下的配置文件 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:ap ...

  6. 【线段树/数学/扩展欧几里得】 Bzoj 3913:奇数国

    Description 在一片美丽的大陆上有100000个国家,记为1到100000.这里经济发达,有数不尽的账房,并且每个国家有一个银行.某大公司的领袖在这100000个银行开户时都存了3大洋,他惜 ...

  7. The 6th Zhejiang Provincial Collegiate Programming Contest->Problem I:A Stack or A Queue?

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3210 题意:给出stack和queue的定义,一个是先进后出(FILO), ...

  8. 深入浅出 ES6:ES6 与 Babel / Broccoli 的联用

    深入浅出 ES6指的是添加在 ECMASript 标准第六版中的 JavaScript 编程语言的新特性,简称为 ES6. 虽然 ES6 刚刚到来,但是人们已经开始谈论 ES7 了,它未来的样子,以及 ...

  9. HDU2896+AC自动机

    ac自动机 模板题 /* */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include&l ...

  10. Android:控件ListView列表项与适配器结合使用

    Listview是用来展示一些重复性的数据用的,比如一些列表集合数据展示到手机,需要适配器作为载体获取数据,最后将数据填充到布局. ListView里面的每个子项Item可以使一个字符串,也可以是一个 ...