题意:

f(A,B)表示:B在A中作为子串出现的次数。
题目给出n个证据,m个子弹
Ai是证据。Bi是子弹。题目问:全部Bi对每一个Ai造成的伤害是多少,即每一个Bi在Ai中出现的次数总和。

解析:

不会AC自己主动机,所以就用字典树水了一发。没想到过了。

先把全部的Bi插入字典树中。然后枚举每一个Ai的后缀,查询后缀的每一个前缀在字典树中出现了几次。

my code

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <string>
using namespace std;
typedef long long ll;
const int MAXN = (int)1e5 + 10;
const int maxnode = (int)6e5 + 10;
const int sigma_size = 26;struct Trie {int ch[maxnode][sigma_size];int val[maxnode];int sz;void clear() { sz = 1; memset(ch[0], 0, sizeof(ch[0]));}Trie() {clear();}int idx(char c) { return c - 'a';}void insert(char *s, int v = 1) {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[u]));val[sz] = 0;ch[u][c] = sz++;}u = ch[u][c];}val[u] += v;}ll find(const char* s) {int u = 0, n = strlen(s);ll ret = 0;for(int i = 0; i < n; i++) {int c = idx(s[i]);if(!ch[u][c]) return ret;u = ch[u][c];ret += val[u];}return ret;}
} trie;int n, m;
string A[MAXN];
char B[MAXN];int main() {int T;scanf("%d", &T);while(T--) {scanf("%d%d", &n, &m);trie.clear();for(int i = 0; i < n; i++) {cin >> A[i];}for(int i = 0; i < m; i++) {scanf("%s", B);trie.insert(B);}ll ans = 0;for(int i = 0; i < n; i++) {ans = 0;for(int j = 0; j < A[i].size(); j++) {ans += trie.find(A[i].c_str()+j);}printf("%lld\n", ans);}}return 0;
}

hdu 5384 Danganronpa(字典树)相关推荐

  1. hdu 1251+hdu 1671(字典树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 一开始我是直接用STL做的,唉...没有经验那...orz...然后毫无疑问地超时了... 看别 ...

  2. hdu 1075 (字典树映射)

    /*问题:输入一段英文,对照给的单词的映射,输出映射后的字符串YY :典型的字典树问题,先处理好映射表,在一映射单词结尾处记录与之对应的单词,后面字符串处理一下,单个单词进行查,找到后输出,没有输出原 ...

  3. HDU 5384 Danganronpa (2015年多校比赛第8场)

    1.题目描写叙述:点击打开链接 2.解题思路:本题利用字典树解决.本题要求查找全部的B[j]在A[i]中出现的总次数.那么我们能够建立一颗字典树,将全部的B[j]插入字典树,因为一个串的全部字串相当于 ...

  4. 单词数 HDU - 2072(字典树模板题amp;stl)

    lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Input 有多组数据,每组一行,每组就 ...

  5. hdu 5687 裸字典树

    度熊手上有一本神奇的字典,你可以在它里面做如下三个操作: 1.insert : 往神奇字典中插入一个单词 2.delete: 在神奇字典中删除所有前缀等于给定字符串的单词 3.search: 查询是否 ...

  6. 单词数 HDU - 2072 纯字典树个人理解

    lily的好朋友xiaoou333最近很空, 他想了一件没有什么意义的事情, 就是统计一篇文章里不同单词的总数. 下面你的任务是帮助xiaoou333解决这个问题. Input有多组数据,每组一行,每 ...

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

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

  8. hdu 1251 统计难题(字典树)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1251 分析: 关于字典树的题目似乎都有一个普通适用性的模板,有时只是稍加改动来满足临时的要求,我的一 ...

  9. HDU多校1 - 6955 Xor sum(字典树+贪心)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,要求找到一段长度最短的区间,使得异或和大于等于 kkk,如果有多种答案,输出左端点最小的那个 题目分析:倒着维护一下后缀异或和,将后缀异或 ...

最新文章

  1. 网页爬虫 html知识,python爬虫
  2. Windows保护模式学习笔记(四)—— 中断门陷阱门
  3. Mysql:Mysql数据库系统表之详细了解INNODB_TRX、INNODB_LOCKs、INNODB_LOCK_waits、PROCESSLIST表
  4. 关于 SAP 电商云 Spartacus UI package.json 中的 sass 依赖
  5. win7系统开机蓝屏提示hardware Monitor的解决方法
  6. flink sql udf jar包_编写Hive的UDF(查询平台数据同时向mysql添加数据)
  7. 在 Apex 中得到 sObject 的信息
  8. Navicate 如何导出数据库中的存储过程、事件、视图等?
  9. start-dfs.sh\stop-dfs.sh启动失败
  10. signature=daa3bbe3ad9a7c162ba9d98f8d9e7530,来用百度密语吧!!!
  11. python和excel的优缺点_Excel不好吗?为什么非要学python?
  12. 谷歌地球(Google Earth) 7.3.2.5776
  13. 无法定位libjasper-dev
  14. 2021年创新医疗器械盘点
  15. 3dmax导出unity3d模型设置
  16. God.org单域环境攻略(三)
  17. html布局直接填充,css实现自动填充布局
  18. choco无法将choco识别_choco入门
  19. 修改苹果开发者账号的资料
  20. 住进布达拉宫,我是雪域最大的王。流浪在拉萨街头,我是世间最美的情郎。...

热门文章

  1. 技术干货 | Docker容器中需要避免的十种常见误区
  2. Kendo UI Professional Q3 2015 Beta发布[附下载]
  3. php数组常用函数汇总
  4. J2SE理解之一:声明和访问控制
  5. MySQL-8.0.12-winx64
  6. [C# 基础知识系列]专题六:泛型基础篇——为什么引入泛型
  7. python带界面的计算器
  8. C++ Primer: 1. 初识输入和输出
  9. About Gnu Linker2
  10. PHP 多参数方法的重构