正题

luogu 3879
ybtoj Trie-4


题目大意

给你n篇文章,还有m个单词,问你这些单词在哪几篇文章中出现过


解题思路

对文章中的单词建Trie,然后那查询的单词去匹配


代码

#include<map>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 500100
#define mp(x,y) make_pair(x,y)
using namespace std;
int n, m, w;
char s[N];
map<pair<int, int>, int>to;//直接存会MLE,用map,以时间换空间
vector<int> a[N];
void insert(char* s, int v)//存单词
{int now = 0, y, n = strlen(s+1);for (int i = 1; i <= n; ++i){y = s[i] - 'a';if (!to[mp(now, y)]) to[mp(now, y)] = ++w;now = to[mp(now, y)];}if (!a[now].size()) a[now].push_back(v);else if (a[now][a[now].size() - 1] != v) a[now].push_back(v);//不重复存
}
void ask(char* s)
{int now = 0, y, n = strlen(s+1), p = 0;for (int i = 1; i <= n; ++i){y = s[i] - 'a';if (!to[mp(now, y)]){p = 1;break;}else now = to[mp(now, y)];}if (p || !a[now].size()) puts(" ");else{printf("%d", a[now][0]);for (int i = 1; i < a[now].size(); ++i)printf(" %d", a[now][i]);putchar(10);}return;
}
int main()
{scanf("%d", &n);for (int i = 1; i <= n; ++i){scanf("%d", &m);while(m--){scanf("%s", s+1);insert(s, i);}}scanf("%d", &n);while(n--){scanf("%s", s+1);ask(s);}return 0;
}

【Trie】阅读理解(luogu 3879/ybtoj Trie-4)相关推荐

  1. Trie树【洛谷P3879】 [TJOI2010]阅读理解

    P3879 [TJOI2010]阅读理解 题目描述 英语老师留了N篇阅读理解作业,但是每篇英文短文都有很多生词需要查字典,为了节约时间,现在要做个统计,算一算某些生词都在哪几篇短文中出现过. 输入输出 ...

  2. P3879 [TJOI2010]阅读理解 [STL]

    P3879 [TJOI2010]阅读理解 我永远喜欢STL 显然要用到哈希类似的东西,说到哈希我就想到了map. 但是map怎么存一串数字还不MLE啊?说到存一串数字还不MLE我就先到了vector. ...

  3. [TJOI2010]阅读理解

    题目描述 英语老师留了N篇阅读理解作业,但是每篇英文短文都有很多生词需要查字典,为了节约时间,现在要做个统计,算一算某些生词都在哪几篇短文中出现过. 输入输出格式 输入格式: 第一行为整数N,表示短文 ...

  4. map集合——阅读理解(洛谷 P3879)

    题目选自洛谷P3879 直接用map<string,vecotr<int> > 代替这题里的trie树,注意开map的时候后面两个> >之间要有一个空格. 用vec ...

  5. 洛谷P3879 [TJOI2010] 阅读理解 题解

    洛谷P3879 [TJOI2010] 阅读理解 题解 题目链接:P3879 [TJOI2010] 阅读理解 题意: 英语老师留了 NNN 篇阅读理解作业,但是每篇英文短文都有很多生词需要查字典,为了节 ...

  6. 机器阅读理解(MRC)零基础入门级综述(一)

    目录 机器阅读理解(MRC)零基础入门级综述(一) 一.机器阅读理解(MRC)是什么? 1. 含义 2. 分类 3. 机器阅读理解(Reading Comprehension) vs. 问答(Ques ...

  7. 刷新中文阅读理解水平,哈工大讯飞联合发布基于全词覆盖中文BERT预训练模型...

    作者 | HFL 来源 | 哈工大讯飞联合实验室(ID:rgznai100) 为了进一步促进中文自然语言处理的研究发展,哈工大讯飞联合实验室发布基于全词覆盖(Whole Word Masking)的中 ...

  8. 科大讯飞刷新纪录,机器阅读理解如何超越人类平均水平? | 技术头条

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」明日开启,扫码咨询 ↑↑↑ 记者 | 琥珀 出品 | AI科技大本营(公众号ID:rgznai100) 对于日常从事模型训练的研究人员来 ...

  9. 2018机器阅读理解竞赛冠军分享:问答系统新思路

    7月28日,由中国中文信息学会和中国计算机学会联合举办的第三届语言与智能高峰论坛于北京语言大学举办.Naturali 奇点机智团队作为2018机器阅读理解技术竞赛冠军团队,受邀参加本次活动的" ...

最新文章

  1. docker mysql容器 修改时区
  2. 网络营销外包——改善企业网站排名现状网络营销外包少不了
  3. PHP如何使用GeoIP数据库
  4. linux命令ssh
  5. python图像处理专业博客
  6. React Native获取设备信息组件
  7. HTML+CSS+JS实现 ❤️ 粒子倒计时特效❤️
  8. Linux 重启网卡
  9. ARToolKit从图片生成特征点数据
  10. 解决IE6中 PNG图片透明的终极方案-八种方案!
  11. 预备作业02 1501 李俊
  12. 【windows10】CMD命令行隐藏窗口运行
  13. Word怎么转换成长图
  14. VMware Workstation Pro 16 安装win7
  15. 上市公司信用评级模型(因子分析法)
  16. 5.5 Go语言项目实战:多人聊天室
  17. qiao-get-ip:免费获取公网ip
  18. python3web开发教程_三、Python web开发入门
  19. 2020Cfa最新mock下载和使用
  20. 你真的了解 defer 吗?(二)

热门文章

  1. phpstormp新建PHP保存在哪里_记一次windows配置PHP环境
  2. mysql 设置宽松模式_mysql5.6 sql_mode设置为宽松模式
  3. 算法题目——第K大的数
  4. leedcode04:转换字符串的最少操作次数
  5. [SpringBoot2]数据访问_数据库场景的自动配置分析和整合测试
  6. 高等数学下-赵立军-北京大学出版社-题解-练习10.5
  7. [MySQL基础]数据库的相关概念
  8. CF429E Points and Segments(欧拉回路)
  9. Canada Cup 2016 C. Hidden Word 字符串构造
  10. Codeforces Round #703 (Div. 2) B.Eastern Exhibition 中位数结论