首页 > 其他分享 >一道set例题

一道set例题

时间:2022-12-28 19:34:02浏览次数:34  
标签:set return people int age 一道 例题 rhs

一、题目

最近某地连续发生了多起盗窃案件,根据监控和路人提供的线索得知,这是一个犯罪团伙。并且还知道这个犯罪团伙中每个人的身高、体重、年龄。警察想知道这个犯罪团伙中的每个人是不是本市的(如果本市有这个特征的人就认为是本市的)。但本是人口太多,又不能一个一个排查。警察又急需这条信息来缩小范围,所以警察特来找到聪明的你来解决这个棘手的问题。

输入格式

第一行将会输入两个数字n(1<=n<=2e5)和m(1<=m<=1e4)。n代表本市的人口数目,m代表犯罪团伙的数量。

后面n行每行有3个数字代表本事每个人的身高、体重、年龄。然后会有m行每行有3个数字代表犯罪团伙每个人的身高、体重、年龄。

输出格式

输出m行,没啊很难过输出一个“yes”或“№”,“yes”代表这个罪犯是本市的,“№”代表这个罪犯不是本市的。

样例输入和输出

一道set例题_set

二、解题思路

这题本质上就是,在你输入的数据中和给的数据是否匹配。因此想到set集合,并且利用set集合中含有的count判断元素是否存在于集合中,来解答。解题过程中,因为含有身高体重年龄这三个变量,将set和结构体进行联合,因为变量过多,采用在结构体中,创建构造函数,方便在主函数中传参,且当set和结构体联合使用时,一定要确切的重载运算符!


三、源码和注释

#include<set>//数据结构set的头文件
#include<vector>
using namespace std;
struct people
{
int h;
int w;
int age;
people(int _h, int _w, int _age)
{
h = _h;
w = _w;
age = _age;
}//在结构体中创建一个构造函数,方便在主函数中传参(当结构体中定义多个变量时使用)
bool operator<(const people& rhs) const
{
if (h != rhs.h)
{
return h < rhs.h;
}
if (w != rhs.h)
{
return w < rhs.w;
}
return age < rhs.age;
}//set与结构体联合使用时,一定要 确切地 重载运算符!
};
set<people> a;//定义集合
int main()
{
int n, m, h, w, age;
cin >> n >> m;
for (int i=0;i<n;i++)
{
cin >> h >> w >> age;
a.insert(people(h,w,age));
}
for (int i=0;i<m;i++)
{
cin >> h >> w >> age;
if (a.count(people(h,w,age)))//当结构体和set联合时,不能直接传参!(利用构造函数传参)
{
cout<<"yes"<<endl;
}
else
{
cout << "no" << endl;
}
}
return 0;
}

标签:set,return,people,int,age,一道,例题,rhs
From: https://blog.51cto.com/u_15740457/5976227

相关文章

  • HashSet无序不重复 (去重的原因)
    set->hashsettreesetset集合最最重要的一个特征就是,自动去重--hashCode方法与equals方法treeset中弥补了hashset无序的缺点,但是代价是消耗的性能比hashset高,......
  • 集合(进阶 set系列)
    泛型packagecom.an.a;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;publicclassFanxingTest{publicstaticvoidmain......
  • WinNTSetup V5.3.0 Bata5 单文件版
    前言WinNTSetup是一款Windows系统硬盘安装器,支持从PE和本地安装系统,支持支持NT内核的系统。WinNTSetup包括XP、Win7、Win8、Win8.1、Win10等这些系统。直接从硬盘安装......
  • setup语法糖
    Vue3.2版本开始才能使用语法糖!什么是setupscript它是Vue3的一个新语法糖,在setup函数中。所有ES模块导出都被认为是暴露给上下文的值,并包含在setup()返回对......
  • [AGC060D] Same Descent Set
    题解考虑给定一个由<和>组成的长度为\(n-1\)的字符串,第\(i\)位为<表示\(p_i<p_{i+1}\),否则表示\(p_i>p_{i+1}\)。假设有一个这样的字符串\(t\),那么设\(......
  • setjmp使用
    当 setjmp 和 longjmp 一起使用时,它们提供了一种执行非本地 goto 的方法。它们通常在C代码中用于将执行控制传递给先前调用的例程中的错误处理或恢复代码,而不使用......
  • SetProcessWorkingSetSize减少内存占用?啥也不是
    结论:别用这个函数,他会把内存写不下的写到硬盘的虚拟内存中去(注:硬盘中的虚拟内存默认在系统盘里)贴一段博客园名称pdfw的代码点击查看代码[System.Runtime.InteropServ......
  • Kubernetes StatefulSet 控制器(二十一)
    前面我们学习了Deployment和ReplicaSet两种资源对象得使用,在实际使用的过程中,Deployment并不能编排所有类型的应用,对无状态服务编排是非常容易的,但是对于有状态服务就......
  • Kubernetes DaemonSet 控制器(二十二)
    通过该控制器的名称我们可以看出它的用法:Daemon,就是用来部署守护进程的,DaemonSet用于在每个Kubernetes节点中将守护进程的副本作为后台进程运行,说白了就是在每个节点部署......
  • Kubernetes ReplicaSet 控制器(十九)
    前面我们一起学习了Pod的原理和一些基本使用,但是在实际使用的时候并不会直接使用Pod,而是会使用各种控制器来满足我们的需求,Kubernetes中运行了一系列控制器来确保集群......