[TJOI2010]阅读理解

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

输入输出格式
输入格式:
第一行为整数N,表示短文篇数,其中每篇短文只含空格和小写字母。

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

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

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

输入输出样例
输入样例#1:
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:
1 2 3
2 3
1 2
3
2
说明
对于30%的数据,1 ≤ M ≤ 1,000

对于100%的数据,1 ≤ M ≤ 10,000,1 ≤ N ≤ 1000

每篇短文长度(含相邻单词之间的空格) ≤ 5,000 字符,每个单词长度 ≤ 20 字符

每个测试点时限2秒

这好像是个trie树的题目,但是蒟蒻的我已经忘了,但仔细想一想其实不用trie树,只用map,vector就可以了!
对于输入按照string型输入,因为我并不会用map套vector,所以我对于每个单词映射成一个数字,每当一行出现该单词时就将该行存入该vector下,在查询时就查询该单词映射下数字的vector中存储的所有数字,同时因为一行可能同时出现多次一个单词所以需要进行判重。

代码:


#include<iostream>
#include<cstdio>
#include<map>
#include<vector>
#include<cstring>
using namespace std;
int n,m,cnt;
int flag[500000];
map<string,int>match;
vector<int>G[100010]; 
int main(){cin >> n;for(int i = 1; i<=n; i++){int opt ;cin >> opt ;for(int j = 1; j<=opt; j++){string op;cin >> op;if(!match[op]){cnt++;match[op] = cnt;//映射成数字G[cnt].push_back(i);}else {G[match[op]].push_back(i); }}} cin >> m;for(int i = 1; i<=m; i++){string opt;cin >> opt;memset(flag,0,sizeof(flag));for(int j = 0; j<G[match[opt]].size(); j ++){if(flag[G[match[opt]][j]])continue;//判重flag[G[match[opt]][j]] = 1;cout << G[match[opt]][j] << ' ';}cout <<'\n';}return 0;
}  

转载于:https://www.cnblogs.com/Euplectella/p/10092940.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250049.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ccentos 7下安装php5.6并使用nginx + php-fpm部署多个不同端口网站

作为一个的勤杂工&#xff0c;近期因公司内部信息化的需求&#xff0c;给新进员工提供基础的知识培训和介绍&#xff0c;也为了给公司内部建立一个沟通交流的平台&#xff0c;百度找了开源的百科系统HDwiki和开源的问答系统Tipask问答系统&#xff0c;蛋痛的这两套系统均是phpm…

Zookeeper基础使用机制原理

Znode&#xff1a; 1、Znode既是路径(目录)也是信息(文件) 2、Znode有两种分类&#xff1a;一分为临时节点(会话生命周期)和永久节点&#xff1b;二分为普通节点和顺序节点 Watch&#xff1a; 1、监听与通知机制&#xff0c;可以在节点上监听其本身(增、删、改)或其子节点(增、…

JS ajax请求参数格式( formData 、serialize)

1 $("#importBtn").click(function(){2 if($("#conId").val() ""){3 alert("请填写Id");4 return;5 }6 if($("#fromWhere").val() "…

【小工具分享】 - vscode注释自动生成

参考 关闭文件头部注释 点击设置 输入fileheader搜索 关闭头部注释 "fileheader.customMade" : {"autoAdd": false }

Spring的bean实例化过程

以XmlBeanFactory为例&#xff0c;最简单的取bean方式是&#xff1a; BeanFactory factory new XmlBeanFactory(new FileSystemResource("D:\\workspace\\JavaApplication2\\src\\javaapplication2\\spring\\beans.xml")); Car obj (Car)factory.getBean("c…

最全整理浏览器兼容性问题与解决方案(转)

所谓的浏览器兼容性问题&#xff0c;是指因为不同的浏览器对同一段代码有不同的解析&#xff0c;造成页面显示效果不统一的情况。在大多数情况下&#xff0c;我们的需求是&#xff0c;无论用户用什么浏览器来查看我们的网站或者登陆我们的系统&#xff0c;都应该是统一的显示效…

【算法】 - 滑动窗口

1. 题目链接 2. 分析 最多可以将K个值从0变成1,因此滑动窗口的限制条件: 0的数量(zeros)小于K,算法过程如下 有一个滑动窗口(slipper),每次都会从A中读入一个数当读入的数为0时,zeros当zeros的数量大于K时,会取出slipper首部的元素,当取值为0时zeros-- 总体代码如下: var lo…

Springboot整合thymeleaf模板

Thymeleaf是个XML/XHTML/HTML5模板引擎&#xff0c;可以用于Web与非Web应用。 Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式&#xff0c;因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码&#xff0…

Java代码输出到txt文件(申请专利贴源码的必备利器)

最近公司在申请专利&#xff0c;编写不少文档&#xff0c;项目的代码量实在是过于庞大。如果一个一个的复制粘贴虽然能够完成&#xff0c;但是对于程序员而言实在没有这个必要。shell或者python就能解决这个问题。由于我个人对于shell和python不是非常熟练的情况下&#xff0c;…

【算法】 - 动态规划 + 位运算

题目描述 思路1: 写一个返回2进制中1数量的函数countOne遍历0到num,对每一个数使用countOne,并将结果保存到res中返回 var countBits function (num) {let res new Array(num 1).fill(0);for (let i 0; i < num; i) {res[i] countOne(i.toString(2));}return res; };…

Spring配置AOP切入点execution详解

例&#xff1a; execution (* com.sample.service…*. *(…)) 整个表达式可以分为五个部分&#xff1a; 1、execution():&#xff1a;表达式主体。 2、第一个*号&#xff1a;表示返回类型&#xff0c; *号表示所有的类型。 3、包名&#xff1a;表示需要拦截的包名&#xff…

Netty

1BS/CS? 2断点续传需要activeX,需要独立客户端有状态,tomcat无状态,或者Netty有状态,可以断点续传 3Netty核心java nio性能比较高 4Jetty和Netty和dubbo区别? 5 转载于:https://www.cnblogs.com/xinglongbing521/p/10105351.html

sympy科学计算器

SymPy库常用函数 简介 本文抄于https://www.cnblogs.com/baby123/p/6296629.html SymPy是一个符号计算的Python库。它的目标是成为一个全功能的计算机代数系统&#xff0c;同时保持代码简 洁、易于理解和扩展。它完全由Python写成&#xff0c;不依赖于外部库。SymPy支持符号计算…

【异或运算】 - 交换2个数

1. 代码 let a 3; let b 4; a a ^ b; b a ^ b; a a ^ b;2. 异或的性质 不同为1,相同为0(可以看做是无进制位的加法)交换律: a ^ b b ^ a;结合律: (a ^ b) ^ c a ^ (b ^ a);0 ^ x x;x ^ x 0; 3. 证明 下面证明1中的代码 a 3 ^ 4;b (3 ^ 4) ^ 4 3 ^ 0 3;a (3…

Spring底层控制反转解耦合(IOC)

简单的例子解释IOC控制反转进行解耦合 一、相关概念 &#xff08;1&#xff09;解耦合 解耦合就是把程序中互相不相关或有限相关的模块分割开来&#xff0c;把不同模块互相之间的关系用接口进行准确定义&#xff0c;解耦前&#xff0c;两个模块之间共享所有信息&#xff1b; &…

Manacher算法学习笔记 | LeetCode#5

Manacher算法学习笔记 DECLARATION 引用来源&#xff1a;https://www.cnblogs.com/grandyang/p/4475985.html CONTENT 用途&#xff1a;寻找一个字符串的最长回文子串时间复杂度&#xff1a;O(N)算法步骤&#xff1a; 1.添加特殊字符 由于回文串的长度可奇可偶&#xff0c;比如…

content-type对照表

转载于:https://www.cnblogs.com/mxyr/p/9238329.html

【算法小积累】 - 提取非0数最右侧的1

参考 - 69:49 const getRightOne num > {return num & (~num 1); };

解耦合

广大程序猿同胞&#xff0c;经常会看到“解耦合”&#xff0c;也有很多人&#xff0c;会用这个词来装X&#xff0c;但是&#xff0c;实际真正能理解的人&#xff0c;并不多。接下来&#xff0c;带大家深入浅出的走一遍&#xff0c;如何解耦合。 首先&#xff0c;我们要知道&am…