CCF-GESP计算机学会等级考试2026年3月五级C++T2 找数

P15799 [GESP202603 五级] 找数

题目描述

给定一个包含 nnn 个互不相同的正整数的数组 AAA 与一个包含 mmm 个互不相同的正整数的数组 BBB,请你帮忙计算有多少个数在数组 AAA 与数组 BBB 中均出现。

输入格式

第一行包含两个整数 n,mn,mn,m。

第二行包含 nnn 个正整数 a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1​,a2​,⋯,an​ 表示数组 AAA。

第三行包含 mmm 个正整数 b1,b2,⋯ ,bmb_1,b_2,\cdots,b_mb1​,b2​,⋯,bm​ 表示数组 BBB。

输出格式

输出一个整数,表示在数组 AAA 与数组 BBB 中均出现的数的个数。

输入输出样例 #1

输入 #1

3 5 4 2 3 3 1 5 4 6 

输出 #1

2 

说明/提示

样例解释

样例 1 中,444、333 在数组 AAA 与 BBB 中均出现。

数据范围

对于 40%40\%40% 的数据,保证 1≤n,m≤10001 \leq n,m \leq 10001≤n,m≤1000。

对于 100%100\%100% 的数据,保证 1≤n,m≤1051 \leq n,m \leq 10^51≤n,m≤105,1≤ai,bi≤1091 \leq a_i,b_i \leq 10^91≤ai​,bi​≤109。

解析

1.将a数组和b数组合并排序,相等的数会相邻,找到有多少对相邻的数相等,就是答案,时间复杂度O(NlogN),(N=n+m),详见代码:

#include<bits/stdc++.h>usingnamespace std;int a[200005];int n,m;int ans=0;intmain(){ cin>>n>>m;for(int i=1;i<=n+m;i++){ cin>>a[i];}sort(a+1,a+n+m+1);for(int i=1;i<n+m;i++){if(a[i]==a[i+1]) ans++;} cout<<ans;return0;}

2.将a,b数组分别排序,用双指针法求相同的数对,时间复杂度O(NlogN),(N=max(n,m)),详见代码:

#include<bits/stdc++.h>usingnamespace std;int a[100005];int b[100005];int n,m;int ans=0;intmain(){ cin>>n>>m;for(int i=1;i<=n;i++){ cin>>a[i];}for(int i=1;i<=m;i++){ cin>>b[i];}sort(a+1,a+n+1);//分别排序sort(b+1,b+m+1);int i=1;//a数组的第一个数int j=1;//b数组的第一个数while(i<=n&&j<=m){//都没完if(a[i]>b[j]){//bj小,换下一个 j++;}elseif(a[i]<b[j]){//ai小,换下一个 i++;}else{//相等,多一对相等的 ans++; i++; j++;}} cout<<ans;return0;}

另一种双指针解法:

#include<bits/stdc++.h>usingnamespace std;int a[100005];int b[100005];int n,m;int ans=0;intmain(){ cin>>n>>m;for(int i=1;i<=n;i++){ cin>>a[i];}for(int i=1;i<=m;i++){ cin>>b[i];}sort(a+1,a+n+1);//分别排序sort(b+1,b+m+1);for(int i=1,j=1;i<=n;i++){//枚举a数组的每一个数while(b[j]<a[i]&&j<=m){//bj小于ai,换下一个bj j++;}if(a[i]==b[j]) ans++;//相等,多一对if(j>m)break;//b数组没了,结束} cout<<ans;return0;}

Read more

Kubernetes与Python微服务编排实战:从基础部署到自动扩缩容

Kubernetes与Python微服务编排实战:从基础部署到自动扩缩容

目录 摘要 1 引言:为什么Kubernetes是Python微服务的必然选择 1.1 Kubernetes核心价值定位 1.2 技术架构演进路线 2 Kubernetes核心原理深度解析 2.1 集群架构与组件协同 2.1.1 核心组件架构解析 2.1.2 Kubernetes集群架构图 2.2 Pod与Deployment深度解析 2.2.1 Pod生命周期管理 3 实战部分:Python微服务完整编排方案 3.1 Flask微服务Kubernetes部署 3.1.1 完整的微服务应用示例 3.1.2 Docker镜像构建配置 3.2 Kubernetes资源配置文件 3.2.

By Ne0inhk
【Python篇】PyQt5 超详细教程——由入门到精通(序篇)

【Python篇】PyQt5 超详细教程——由入门到精通(序篇)

文章目录 * PyQt5 超详细入门级教程 * 前言 * 序篇:1-3部分:PyQt5基础与常用控件 * 第1部分:初识 PyQt5 和安装 * 1.1 什么是 PyQt5? * 1.2 在 PyCharm 中安装 PyQt5 * 1.3 在 PyCharm 中编写第一个 PyQt5 应用程序 * 1.4 代码详细解释 * 1.5 在 PyCharm 中运行程序 * 1.6 常见问题排查 * 1.7 总结 * 第2部分:创建 PyQt5 应用程序与布局管理 * 2.1 PyQt5 的基本窗口结构

By Ne0inhk

【2025最新】Python量化数据接口指南:baostock 免费获取分钟级K线教程

baostock 是一个对Python量化爱好者非常友好的免费开源证券数据平台,尤其适合获取A股历史行情数据。我为你准备了这份2025年更新的baostock使用指南,希望能帮助你高效地获取数据。 1. 认识baostock Baostock(证券宝)是一个免费、开源的证券数据平台。它通过Python API提供大量准确、完整的证券历史行情数据、上市公司财务数据等,能满足量化交易投资者、数量金融爱好者、计量经济从业者的数据需求。 它的数据返回格式为pandas DataFrame类型,这对于使用pandas/NumPy/Matplotlib进行数据分析和可视化非常友好。 2. 数据范围与时间 baostock的数据覆盖范围主要包括: 数据类型 包含内容 时间范围 备注                 股票数据 日、周、月K线数据 1990-12-19至今 5、15、30、60分钟K线数据 1999-07-26至今 指数数据 综合指数,规模指数,一级行业指数,二级行业指数,策略指数,成长指数,价值指数,主题指数,基金指数,

By Ne0inhk

【Python】6 种方法轻松将 Python 脚本打包成 EXE 应用

以下是 2025–2026 年最实用的 6 种 Python 脚本打包成 Windows EXE 可执行文件 的主流方法,按易用性 × 普及度 × 实际场景排序。 排名方法/工具易用性生成文件大小启动速度运行速度反编译难度典型场景推荐指数 (★5)1PyInstaller★★★★★大(onefile 常 50–300MB)慢(几秒~几十秒)普通低绝大多数 GUI、小工具、初次尝试★★★★★2auto-py-to-exe★★★★★同 PyInstaller同上普通低零基础用户、GUI 操作打包★★★★☆3Nuitka★★★★☆中~小快明显更快(1.5–4×)中~高性能敏感、数值计算、想保护代码★★★★☆4cx_Freeze★★★★中较快普通低~中追求启动快、

By Ne0inhk