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

子集合判断(map)

题目描述

给出  个集合 ,判断  是否为  的子集合。由于集合  本身都可能存在重复的元素,因此如果  中某个元素的数量多于 ,也不认为  是  的子集。子集忽略集合元素的顺序。

输入格式

第1行:一个数t,表示测试集的数量。(1 <= t <= 10)

每个test第1行:2个数m,n中间用空格分隔,对应集合 A,B 的大小(2 <= m, n <= 50000)

每个test第2行:m 个数,中间用空格分隔,对应集合 A 的元素。(1 <= Ai <= 50000)

每个test第3行:n 个数,中间用空格分隔,对应集合 B 的元素。(1 <= Bi <= 50000)

输出格式

共t行,每行输出 Yes 或 No,如果B是A的子集,则输出 Yes,否则输出 NO

样例

【样例输入】
2
3 3
1 1 2
1 2 1
2 3
1 1
1 2 2
【样例输出】
Yes
No
数据范围与提示

(1 <= t <= 10,2 <= m, n <= 50000,1 <= Ai <= 50000,1 <= Bi <= 50000)

一些想法

这道题可以用 map 做,先创建一个 map 容器,输入有几组数,用 while 循环,然后在 while 里面再输入两个数,分别是 A 的长度与 B 的长度。然后清空 map ,用一个数用于标记是否输出,记得要重置这个数等于 1,循环输入 A集合,然后记录这个集合中每个数出现的个数,用 ++a[s];,s 是输入的数,在这里,s 是键,加的是值,这里就记录了 s 在集合 a 中出现的次数。接着第二个循环,输入集合 B,因为是看集合 A 中是否包含集合 B ,所以可以看 B 集合的每一个元素的个数在 A 集合中够不够,简单一点,就是 B 集合的元素在 A 集合中有没有且集合 A 某个元素的个数是否大于等于 B 集合某个元素的个数。所以我们这里直接判断 a[s] 是否为零,如果为零,说明在 A 集合中某个元素的个数不够了,再判断如果这一组数据还没有输出,标记用的变量等于 1(前面没有不符合,如果不判断,可能会导致输出多个 No ),输出No,标记用的数字等于 0 ;否则,说明元素的个数还够,a[s]-- ,这里可以理解为 A 集合的元素 s 与 B 集合中的一个 s 抵消了,所以个数减一。再循环外面,如果标记的数组为 1,说明 B 的每一个元素以及元素个数,集合 A 都有且数量足够,符合集合 B 是集合 A 的子集合,输出 Yes。

注:记得换行!区分大小写!记得清空 map!

AC代码

#include<bits/stdc++.h>
using namespace std;
int q,n,m,s,b;
map<int,int> a;
int main(){cin>>q;while(q--){cin>>n>>m;a.clear();b=1;for(int i=1;i<=n;i++){cin>>s;++a[s];}for(int i=1;i<=m;i++){cin>>s;if(!a[s]){if(b) cout<<"No"<<endl;b=0;}else a[s]--;}if(b==1) cout<<"Yes"<<endl;}return 0;
}

http://www.dtcms.com/a/613313.html

相关文章:

  • 潍坊做外贸网站网页源代码在线查看
  • 【Liunx】进程间关系与守护进程
  • el-upload 上传管理与自定义优化实践
  • 开发中的英语积累 P13:Segment、Inclusive、Exclusive、Movement、Arbitrarily、Generic
  • node语法特性详解
  • 2025-11-15 学习记录--Python-LSTM模型定义(PyTorch)
  • PLB-TV 4K+H.265 编码,无广告超流畅
  • Transformer结构完全解读:从Attention到LLM
  • 【ZeroRange WebRTC】REMB(Receiver Estimated Maximum Bitrate)技术深度分析
  • sharding-jdbc 绑定表
  • 郑州网站制作wordpress 密码失败
  • Dify-Token 应用实现
  • webRTC:流程和socket搭建信令服务器
  • PoA 如何把 CodexField 从“创作平台”推向“内容经济网络”
  • 厦门 外贸商城网站建设网站推广哪个好
  • 小米Java开发校园招聘面试题及参考答案
  • 哪个网站做头像比较好网片式防护围栏
  • LangChain Memory 使用示例
  • 【剑斩OFFER】算法的暴力美学——寻找数组的中心下标
  • APIs---Day01
  • 猪只行为状态识别与分类:基于YOLO13-C3k2-ESC模型的实现与优化_3
  • 宁波网站建设方案推广公司网站设计
  • [智能体设计模式] 第10章:模型上下文协议(MCP)
  • 使用docker-composer安装MySQL8、Redis7、minio脚本
  • linux的nginx版本升级
  • 支持selenium的chrome driver更新到142.0.7444.162
  • 【 Java八股文面试 | JVM篇 内存结构、类加载、垃圾回收与性能调优 】
  • 网站开发和前端是一样吗化妆品网站模板
  • Mujoco 机械臂进行 PBVS 基于位置的视觉伺服思路
  • 【玄机靶场】Crypto-常见编码