P1184 高手之在一起 题解

还是先复习 or 预习一下set。

先给set一个名字:

set<元素类型>qwq;
插入元素:
qwq.insert(元素);
查找元素:
qwq.find(元素);

如果元素没有找到,返回qwq.end(),是一个空的位置迭代器。
注:
1.迭代器可以看作是一个复合类型的指针,set的存储是动态线性的。
2.集合的最后一个元素是空的,qwq.end()指向最后一个元素。
3.如果找到元素,就会返回指向这个元素的指针,没有的话就返回qwq.end()
于是得出: 如何判断元素p是否存在于qwq中?

if (qwq.find(p)!=qwq.end())
{//如果返回了qwq的end(),就代表是不存在。//所以不是end()就代表在qwq内//然后如果没有元素,就返回end(),避免了一些不必要的尴尬cout<<"p s in qwq."<<endl;
}
else cout<<"Not found p in qwq."<<endl;

以上是这个题的STLset内置成员函数方面。


然后讨论一下这个题的操作。

这个题很明显卡的就是Windows Vista\XP\2003\7\8.1\10!!!
Linux系统13号是'\n',即换行......
因为题目测试点下载以后win会发现多了一个13号字符' '(空格)......
然后我们读入数据就必须特判(吃掉或者加上)char(13)
然后每一个地方还不一定不含有空格,所以必须getline
举个例子:Boston Center
cin读到Boston就停下了。
我们也可以读入一个' '就继续cin,然而getline更方便qwq
边读入要匹配的字符串,然后.find(input)判断是否存在,存在即ans++


说的还是挺明白的吧......
星,上代码:

#include <iostream>
#include <cstdio>
#include <string>
#include <set>
//STL の set 库using namespace std;int main()
{string input;//你要的字符串set<string>qwq;//你要的集合int n,m,ans=0;scanf("%d%d",&n,&m);getline(cin,input);//把数字后面乱七八糟的东西读干净for (register int i=1;i<=n;i++){getline(cin,input);//读入字符串if (input[input.size()-1]!=(char)13)//最后一个是否是' 'input=input+char(13);qwq.insert(input);//压入集合qwq}for (register int i=1;i<=m;i++){getline(cin,input);if (input[input.size()-1]!=(char)13)//最后一个是否是' 'input=input+char(13);if (qwq.find(input)!=qwq.end())ans++;}cout<<ans;return 0;
}

瞎举报前提交记录自己查询:Jelly_Goat
感谢阅读,更多精彩移步。

另附后注:

做这样的字符串匹配问题,trie字典树和KMP算法基本都是正解。
但是这样的数据结构是用空间换时间,当字符串过长的时候,不宜使用静态Trie字典树。
当数据范围较小的时候,我们可以借助其他数据结构用时间换空间。

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

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

相关文章

[AIGC 大数据基础]hive浅谈

在当今大数据时代&#xff0c;随着数据量的不断增大&#xff0c;如何高效地处理和分析海量数据已经成为一个重要的挑战。为了满足这一需求&#xff0c;Hive应运而生。 Hive作为一个基于Hadoop的数据仓库基础设施&#xff0c;为用户提供了类SQL的查询语言和丰富的功能&#xff0…

使用GradCAM 使用用于脑肿瘤分类的脑 MRI 扫描数据分类-含理论与源码

神经网络拥有数百万个可训练参数,长期以来一直被认为是黑匣子。它们可以产生令人惊叹的结果,而我们经常接受输出,但对模型为何做出这样的预测知之甚少。在某些情况下,模型可以学习意想不到的相关性并产生与预期任务无关的“正确”结果。GradCAM是梯度加权类激活映射的缩写,…

pve7.x、8.x版本一键升级、换源、优化工具脚本推荐

每次安装完pve之后都需要、换各种debain源、pve源、lxc源等、去掉弹窗、合并local-lvm等一系列的工作。还有玩硬件直通的优化。 偶然发现网上有大佬编写的一键脚本&#xff0c;pve_source 官网地址pve_source - X86派 - 迷你硬件玩家集中地 需要注册登录后能看到最新的地址 …

Oracle BIEE 示例(一)数据透视表2

1 背景 版本:BIEE 12C 视图:数据透视表 实现内容(顺序与具体内容不一致): 2 空列显示(方法一) 2.1 问题 列为空时,标题栏不显示信息。 2.2 期望 即使数据为空,也要显示列名。 2.3 官方资料 2.3.1 操作步骤 2.3.1.1 要在分析级别关闭空值隐藏,请执行以下操作…

openssl3.2/test/certs - 043 - 4096-bit leaf key

文章目录 openssl3.2/test/certs - 043 - 4096-bit leaf key概述笔记END openssl3.2/test/certs - 043 - 4096-bit leaf key 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! * \file D:\my_dev\my_local_git_prj\study\openSSL\test_certs\043\my_openssl_doc043…

操作无法完成,因为文件已在Windows资源管理器中打开,如何解决?以及如何将哔哩哔哩下载好的视频导出到电脑中播放?— 以vivo手机为例

前言 想删除流氓软件的时候&#xff0c;提示操作无法完成&#xff0c;因为文件已在Windows资源管理器中打开&#xff0c;但打开任务管理器&#xff0c;似乎又没有符合的正在执行的程序&#xff0c;更别说打开让人看到头疼的资源监视器了&#xff0c;本文将用一招解决如上问题 …

从一个main.cpp文件开始构建Qt项目【浅析】

目录 操作步骤 编译阶段 尝试运行 操作步骤 最初只有一个main.cpp文件。 然后在Qt的mingw命令行中进行以下操作&#xff1a; 这样就会在main.cpp的路径下生成一个.pro文件&#xff1a; 用QC打开后是这个样子&#xff1a; 所以在这里 qmake -project 的作用就是生成一个.…

【开源】基于JAVA语言的假日旅社管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统介绍2.2 QA 问答 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿评论4.3 查询民宿新闻4.4 新建民宿预订单4.5 查询我的民宿预订单 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的假日旅社…

【前端】尚硅谷Node.js零基础视频教程笔记

文章目录 1. 参考视频: 尚硅谷Node.js零基础视频教程&#xff0c;nodejs新手到高手 1.

配置路由策略案例

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 厦门微思网络​​​​​​ https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle O…

1秒解决“整合磁盘时出错: 指定的虚拟磁盘需要进行修复”

引言 Linux初学者会时常报以下的错误&#xff0c;导致虚拟机打不开 原因 总的来说&#xff0c;就是没有正常关闭虚拟机导致的虚拟磁盘 (.vmdk)本身有一个磁盘保护机制&#xff0c;为了防止多台虚拟机同时访问同一个虚拟磁盘 (.vmdk)带来的数据丢失和性能削减方面的隐患&#…

C++关于智能指针的一些常见问题

首先解释指针和引用在C中都用于间接访问变量&#xff0c;但它们有一些区别&#xff1a; 1. 指针是一个变量&#xff0c;它保存了另一个变量得内存地址&#xff1b;引用是另一个变量的别名&#xff0c;与原变量共享内存地址。 2. 指针可以被重新赋值&#xff0c;指向不同的变量…

JVM篇--JVM调优高频面试题

1 说一下 JVM 调优的工具&#xff1f; JDK 自带了很多监控工具&#xff0c;都位于 JDK 的 bin 目录下&#xff0c;其中最常用的是jconsole 和 jvisualvm 这两款视图监控工具。 jconsole&#xff1a;用于对 JVM 中的内存、线程和类等进行监控&#xff1b; jvisualvm&#xff1a…

将AWS iot消息数据发送Kinesis Firehose Stream存向S3

观看此文章之前&#xff0c;请先学习AWS iot的数据收集&#xff1a; 使用Linux SDK客户端向AWS Iot发送数据-CSDN博客 1、工作原理&#xff1a; 1.1 规则 规则可让您的设备与 AWS 服务进行交互。分析规则并根据物品发送的消息执行操作。您可以使用规则来支持任务&#xff0…

C++类和对象(上)

✨Blog&#xff1a;&#x1f970;不会敲代码的小张:)&#x1f970; &#x1f251;推荐专栏&#xff1a;C语言&#x1f92a;、Cpp&#x1f636;‍&#x1f32b;️、数据结构初阶&#x1f480; &#x1f4bd;座右铭&#xff1a;“記住&#xff0c;每一天都是一個新的開始&#x1…

字符串的方法有哪些?

JavaScript中字符串作为基本类型&#xff0c;它为我们提供了很多好用的API&#xff0c;本期就来总结一下一些常见的字符串方法吧 字符串的方法按照功能来划分&#xff0c;可分为增删改查四个部分 写在前面&#xff1a;了解一个方法&#xff0c;我们可以通过三个方面&#xff…

(2)Elastix图像配准:参数文件(配准精度的关键)

文章目录 前言一、Elastix简介二、参数文件&#xff08;类型&#xff09;三、参数文件&#xff08;定义&#xff09;&#xff1a;由多个组件组成&#xff0c;每个组件包含多个参数。3.1、组件的相关参数3.2、图解组件3.2.1、图解 - 金字塔&#xff08;pyramid&#xff09;3.2.2…

从零开始训练 YOLOv8最新8.1版本教程说明(包含Mac、Windows、Linux端 )同之前的项目版本代码有区别

从零开始训练 YOLOv8 - 最新8.1版本教程说明 本文适用Windows/Linux/Mac:从零开始使用Windows/Linux/Mac训练 YOLOv8 算法项目 《芒果 YOLOv8 目标检测算法 改进》 适用于芒果专栏改进 YOLOv8 算法 文章目录 官方 YOLOv8 算法第一步 配置环境1.1 系列配置1.2 代码执行第二步…

wpf控件Expander集合下的像素滚动

项目场景&#xff1a;Expander集合滚动 如下图&#xff0c;有一个Expander集合&#xff0c;且设置 ScrollViewer.VerticalScrollBarVisibility "Auto" 每个Expaner下包含有若干元素&#xff0c;当打开Expader(即IsExpanded "true"&#xff09;时&#…

网络通讯接口RS232与RS485含义与区别

在现代化数据中心机房中&#xff0c;无论是前期设计、现场调试还是后期维护&#xff0c;通常都要了解通信协议&#xff0c;如机房供电设备、环境设备、空调设备等综合集中监控。通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式&#…