很久之前写的题了,当时不知道怎么dfs所以卡了一段时间,^_^

题解:由于题目给了一大堆字符串,所以首先考虑应该可以建树,之后找到T所在的位置,对T所在的位置dfs就行了

代码:

 1 #include <iostream>
2 #include <cstdio>
3 #include <cstring>
4 #include <cmath>
5 #include <algorithm>
6 #include <stack>
7 #include <queue>
8 #include <vector>
9 #include <map>
10 #include <set>
11 #include <unordered_set>
12 #include <unordered_map>
13 #define ll long long
14 #define fi first
15 #define se second
16 #define pb push_back
17 #define me memset
18 const int N = 1e6 + 10;
19 const int mod = 1e9 + 7;
20 using namespace std;
21 typedef pair<int,int> PII;
22 typedef pair<long,long> PLL;
23
24 int n,idx=0,x=0;
25 int son[N][26],cnt[N];
26 char str[110],tmp[110];
27 char ans[110];
28
29 void insert(char str[]){ //建树
30 int p=0;
31 for(int i=0;str[i];++i){
32 int u=str[i]-'a';
33 if(!son[p][u]) son[p][u]=++idx;
34 p=son[p][u];
35 }
36 cnt[p]++;
37 }
38
39 void dfs(int u){ //dfs查找
40 while(cnt[u]--){
41 cout<<tmp;
42 for(int i=0;i<x;i++) cout<<ans[i];
43 cout<<endl;
44 }
45 for(int i=0;i<26;i++){
46 if(son[u][i]){
47 int r=u;
48 u=son[u][i];
49 ans[x++]=i+'a';
50 dfs(u);
51 u=r;
52 x--;
53 }
54 }
55 }
56
57 int main(){
58 ios::sync_with_stdio(false);
59 cin>>n;
60 while(n--){
61 cin>>str;
62 insert(str);
63 }
64 cin>>tmp;
65 int p=0;
66 for(int i=0;tmp[i];i++){
67 int u=tmp[i]-'a';
68 p=son[p][u];
69 }
70 dfs(p);
71 return 0;
72 }

最新文章

  1. JAVA将数字字符串强制转换成整型变量----求参数之和实验代码(附流程图)
  2. BZOJ 1018 线段树维护图连通性
  3. HTML页面弹出自定义对话框带遮蔽罩(使用JavaScript)
  4. Java 模板引擎 jetbrick-template
  5. Javascript的一种代码结构方式——插件式
  6. 神奇的Noip模拟试题一试 2 排队
  7. 移动web屏幕适配方案
  8. JavaWeb学习笔记-使用HttpSession对象跟踪会话
  9. echarts 角度渐变环形图心得
  10. JDK开发环境搭建及环境变量配置
  11. Python学习笔记-数字类型
  12. SpringBoot返回json和xml
  13. socketserver 模块并发
  14. Python基础知识(Basic knowledge)
  15. [Cubieboard] 在 Cubieboard 上安装 Node.js 和 npm
  16. gulp-jshint使用说明
  17. MySQL用户授权 和 bin-log日志 详解和实战
  18. struts2对拦截器使用带实例
  19. centos下安装docker最新版教程
  20. linux源码安装php7.2.0

热门文章

  1. 根据业务摸索出的一个selenium代码模版(python)
  2. 【Oracle】想查询相关的v$视图,但是提示表或视图不存在解决办法
  3. 浏览器performance工具介绍及内存问题表现与监控内存的几种方式
  4. MyBatis初级实战之四:druid多数据源
  5. Mysql--由prepared sql statement引发的问题
  6. 并发条件队列之Condition 精讲
  7. SuperUpdate.sh 一键更换Linux软件源脚本
  8. Maven 知识点总结以及解决jar报冲突的几种方法
  9. Flutter--Flutter开发环境搭建
  10. 关于Java客户端连接虚拟机中的Kafka时,无法发送、接收消息的问题