题意:还是比较好理解

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

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

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

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

#include <cstdio>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
typedef long long LL;
const int N=+;
char s[];
char str[][];
int len[];
int trie[N][],mk[N];
int ans[],tot,cnt,m,n;
void add(int x)
{
int now=;
for(int i=len[x]-; i>=; --i)
{
char tmp=str[x][i];
if(tmp<'a'||tmp>'z')
tmp+='a'-'A';
int p=tmp-'a';
if(!trie[now][p])
trie[now][p]=++cnt;
now=trie[now][p];
}
mk[now]=x;
}
void solve(int pos)
{
if(pos==n)
{
for(int i=; i<tot; ++i)
printf("%s ",str[ans[i]]);
printf("%s\n",str[ans[tot]]);
exit();
}
int now=;
for(int i=pos+; i<=n; ++i)
{
int p=s[i]-'a';
now=trie[now][p];
if(!now)break;
if(mk[now])
{
ans[++tot]=mk[now];
solve(pos+len[mk[now]]);
--tot;
}
}
}
int main()
{
scanf("%d%s",&n,s+);
// for(int i=1; i<=n/2; ++i)
// swap(s[i],s[n-i+1]);
scanf("%d",&m);
for(int i=; i<=m; ++i)
{
scanf("%s",str[i]);
len[i]=strlen(str[i]);
add(i);
}
solve();
return ;
}

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. 动态设置uitableview高度,参考

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { //  ...

  2. Java第一阶段总结

    学习java已经一个多月的时间了,第一阶段总算完成了. 这中间遇到很多问题,通过问同学问学长,收获了很多,但也知道自己和其他同学相差很远.他们java第一阶段只用了不到一个月的时间,而我拖了很长时间, ...

  3. ExtJS4.2学习(九)属性表格控件PropertyGrid(转)

    鸣谢网址:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-15/178.html ------------- ...

  4. CSS+DIV:父DIV相对定位+子DIV绝对定位

    如何在一个div内将一个div进行绝对定位呢?很简单,把父div的position属性设为relative,子div的position属性设为absolute就可以了... 示例: <html& ...

  5. firefly笔记一之http模块

    原地址:http://www.9miao.com/question-15-54380.html Firefly是免费开源的游戏服务器端框架,开发语言是python,基于twisted框架开发,作为一名 ...

  6. 如何将DJANGO轻量级化

    看看这本书,应该有收获. 不用DJANGO-ADMIN STARTPROJECT XXX 一个文件,一样可以写出可以运行的原生DJANGO哟. import hashlib import sys im ...

  7. 李洪强iOS开发本人集成环信的经验总结_06_发送好友请求

    李洪强iOS开发本人集成环信的经验总结_06_发送好友请求 同步好友请求 异步好友请求

  8. fedora SSH

    设置无密码登陆时注意:chmod 0700 .ssh chmod 600 ~/.ssh/authorized_keys  cat /root/.ssh/id_rsa.pub  >> /ro ...

  9. MySQL高效分页解决方案集

    一,最常见MYSQL最基本的分页方式: select * from content order by id desc limit 0, 10 在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的 ...

  10. minitools

    1.android 2.linux 3.luoji 4.windows CE ----