当前位置: 首页 > news >正文

题解:洛谷 P3879 [TJOI2010] 阅读理解

【题目来源】

洛谷:[P3879 TJOI2010] 阅读理解 - 洛谷

【题目描述】

英语老师留了 \(N\) 篇阅读理解作业,但是每篇英文短文都有很多生词需要查字典,为了节约时间,现在要做个统计,算一算某些生词都在哪几篇短文中出现过。

【输入】

第一行为整数 \(N\) ,表示短文篇数,其中每篇短文只含空格和小写字母。

按下来的 \(N\) 行,每行描述一篇短文。每行的开头是一个整数 \(L\) ,表示这篇短文由 \(L\) 个单词组成。接下来是 \(L\) 个单词,单词之间用一个空格分隔。

然后为一个整数 \(M\) ,表示要做几次询问。后面有 \(M\) 行,每行表示一个要统计的生词。

【输出】

对于每个生词输出一行,统计其在哪几篇短文中出现过,并按从小到大输出短文的序号,序号不应有重复,序号之间用一个空格隔开(注意第一个序号的前面和最后一个序号的后面不应有空格)。如果该单词一直没出现过,则输出一个空行。

【输入样例】

3
9 you are a good boy ha ha o yeah
13 o my god you like bleach naruto one piece and so do i
11 but i do not think you will get all the points
5
you
i
o
all
naruto

【输出样例】

1 2 3
2 3
1 2
3
2

【解题思路】

image

【算法标签】

《洛谷 P3879 阅读理解》 #字符串# #哈希,hash# #字典树,Trie# #各省省选# #天津# #2010#

【代码详解】

#include <bits/stdc++.h>
using namespace std;int n, m, q;  // n: 集合数量, m: 每个集合的元素个数, q: 查询次数
string s;     // 临时存储输入字符串
map<string, set<int>> a;  // 使用map存储每个字符串出现的集合编号int main()
{// 输入集合数量cin >> n;// 处理每个集合for (int i = 1; i <= n; i++) {// 输入当前集合的元素个数cin >> m;// 处理当前集合的每个元素for (int j = 1; j <= m; j++) {cin >> s;// 将当前集合编号添加到字符串对应的set中a[s].insert(i);}}// 输入查询次数cin >> q;// 处理每个查询for (int i = 1; i <= q; i++) {cin >> s;// 获取该字符串出现的所有集合编号set<int> se = a[s];// 输出结果for (set<int>::iterator is = se.begin(); is != se.end(); is++){cout << *is << " ";}cout << endl;}/* 调试代码:打印整个map的内容for (map<string, set<int>>::iterator it = a.begin(); it != a.end(); it++) {cout << it->first << " ";set<int> se = it->second;for (set<int>::iterator is = se.begin(); is != se.end(); is++) {cout << *is << " ";}cout << endl;}*/return 0;
}

【运行结果】

3
9 you are a good boy ha ha o yeah
13 o my god you like bleach naruto one piece and so do i
11 but i do not think you will get all the points
5
you
1 2 3
i
2 3
o
1 2
all
3
naruto
2
http://www.jsqmd.com/news/392383/

相关文章:

  • 2024 年 09 月 二级真题(1)--数位之和
  • 2026年龙岩连城长汀红白喜事鼓吹铜管乐队演出推荐:客家非遗与市场化服务的平衡之选 - 小白条111
  • 题解:洛谷 P4305 [JLOI2011] 不重复数字
  • 12:内核ROP与提权技术
  • 13:现代内核保护机制与绕过技术
  • 14:跨架构内核漏洞利用差异
  • 超市在线销售与分析|基于Python + Django超市在线销售与分析系统(源码+数据库+文档)
  • AI知识图谱构建:企业智能搜索的底层架构
  • 大数据领域数据中台的教育培训机构数据分析
  • 一天一个开源项目(第26篇):ZeroClaw - 零开销、全 Rust 的自主 AI 助手基础设施,与 OpenClaw 的关系与对比
  • OpenClaw(Clawdbot)部署指南:2026年天翼云部署快速上手
  • 彼得林奇的“家庭作业“投资法
  • 实用指南:Elasticsearch:监控 LLM 推理和 Agent Builder 使用 OpenRouter
  • AI提示系统反馈机制设计:如何解决“反馈噪音”问题?
  • 企业H5站点升级PWA (一)
  • 456348568
  • 75757
  • MongoDB备份策略:大数据场景下全量+增量备份的实现与恢复测试
  • AI训练算力利用率低?架构师的4个算力优化+调度方案
  • OpenClaw(Clawdbot):2026阿里云部署教程,掌握技巧超容易
  • 企业H5站点升级PWA (三)
  • OpenClaw(原Clawdbot)2026阿里云部署:手把手教学全记录
  • 企业H5站点升级PWA (二)
  • OpenClaw(原Clawdbot)2026部署教程:阿里云快速搭建指南
  • OpenClaw(原Clawdbot)2026部署教程:阿里云轻松搞定秘籍
  • 美团三面:8000万订单查不动,一定要分库分表吗?
  • 美团三面:千万级订单架构,如何设计一套“永不跳变”的状态流转体系?
  • [raspberry pi4]拿到raspberry pi4(Raspbian GNU/Linux 11 (bullseye))之后,如何熟悉单板-3
  • 线缆外皮破损检测:保障电气安全的 7 个核心策略,附 OpenCV+Halcon 实战代码! - 指南
  • [raspberry pi4]拿到raspberry pi4之后,如何熟悉单板-2