洛谷 P1102 A-B 数对(详解)c++
题目链接:P1102 A-B 数对 - 洛谷
1.题目分析

2.算法原理
解法一:暴力 - 两层for循环
因为这道题需要你在数组中找出来两个数,让这两个数的差等于定值C就可以了,一层for循环枚举A第二层for循环枚举B,求一下看是否等于C,如果是的话就用一个计数器count++,但数据范围是2e5,两层for循环下来就超时了,a和c的数据范围是2的30次方,加完之后会超出int,所以一会要用long long来存
解法二:先统计数组中每个数出现的次数,接下来枚举所有的B,然后找出C + B出现的次数
原来是A-B=C,可以把B移到右边就是A=C+B,C是一个定值,A和B全是从数组中挑数出来的,比如根据示例一C=1,也就是A=1+B,数组[1,1,2,3],枚举B等于1的话,问题就变成了要看看数组里面有多少个数等于2,B枚举第二个1的时候,也是看数组里面有多少个2,B枚举2的时候,看数组中有多少个3,B枚举3的时候看看数组里面有多少个4,因此我们可以先统计数组中每个数出现的次数,接下来枚举所有的B,然后找出C + B出现的次数,如何快速找出C+B出现的次数,可以用哈希表来统计unordered_map<LL,LL>,第一个表示数,第二个关键字表示次数,在枚举B的过程中直接在哈希表中找C + B出现的次数,然后累加加起来就可以了,这个思想就是把枚举的过程变成了查找的过程
代码:
#include <iostream>
#include <unordered_map>using namespace std;typedef long long LL;
const int N = 2e5 + 10;LL n, c;
LL a[N];
unordered_map<int, int> mp; // <数,该数出现的次数>int main()
{cin >> n >> c;for (int i = 1; i <= n; i++){cin >> a[i];mp[a[i]]++; //每个数出现的次数记录下来}LL ret = 0;for (int i = 1; i <= n; i++){// b = a[i]// 找 c + a[i]ret += mp[c + a[i]]; //算出来的和的对应出现次数,mp记录了a数组存的每个数}cout << ret << endl;return 0;
}
如果这道题c可以等于0,在累加次数的代码附近加一个判断即可
#include <iostream>
#include <unordered_map>
using namespace std;typedef long long LL;
const int N = 2e5 + 10;LL n, c;
LL a[N];
unordered_map<int, int> mp; // <数,该数出现的次数>int main()
{cin >> n >> c;for (int i = 1; i <= n; i++){cin >> a[i];mp[a[i]]++; //每个数出现的次数记录下来}LL ret = 0;for (int i = 1; i <= n; i++){if (c){// b = a[i]// 找 c + a[i]ret += mp[c + a[i]]; //算出来的和的对应出现次数,mp记录了a数组存的每个数}else ret += mp[c + a[i]] - 1;//c = 0; 不减1算出来的结果是n * n; 比如a[3,3,3],结果是3+3+3 = 3*3 = 9//正确结果应是n*(n-1)/n*2;(3-1) + (3-1) + (3-1) = 6//a[1], 正确结果是0(无法选择两个不同的元素); 不减1算出来的结果是1 }cout << ret << endl;return 0;
}
相关文章:
洛谷 P1102 A-B 数对(详解)c++
题目链接:P1102 A-B 数对 - 洛谷 1.题目分析 2.算法原理 解法一:暴力 - 两层for循环 因为这道题需要你在数组中找出来两个数,让这两个数的差等于定值C就可以了,一层for循环枚举A第二层for循环枚举B,求一下看是否等于…...
计算机视觉:主流数据集整理
第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络(附代码) 第五章࿱…...
2025软件测试面试常问的题(详细解析)
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 测试技术面试题 1、什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台、软件平…...
项目POC的作用是什么
在项目管理和开发中,POC(Proof of Concept,概念验证)作为一个关键的步骤,扮演着非常重要的角色。POC的作用主要是验证某个概念、技术或方案的可行性,通过小规模实验或原型验证项目的关键假设,帮…...
初探动态规划--记忆化搜索
记忆化搜索 暴力dfs 记录答案 记忆化搜索是一种优化技术,结合了暴力深度优先搜索 (dfs) 和记录答案的方式。 在动态规划的学习过程中,我们可以将问题划分为以下阶段:dfs暴力搜索,记忆化搜索,以及最终的递推。 动态规…...
java开发——为什么要使用动态代理?
举个例子:假如有一个杀手专杀男的,不杀女的。代码如下: public interface Killer {void kill(String name, String sex);void watch(String name); }public class ManKiller implements Killer {Overridepublic void kill(String name, Stri…...
集合 数据结构 泛型
文章目录 1.Collection集合1.1数组和集合的区别【理解】1.2集合类体系结构【理解】1.3Collection 集合概述和使用【应用】内部类匿名内部类Lambda表达式 1.4Collection集合的遍历【应用】1.5增强for循环【应用】 2.List集合2.1List集合的概述和特点【记忆】2.2List集合的特有方…...
特征提取:如何从不同模态中获取有效信息?
在多模态学习中,特征提取是一个至关重要的过程。它是将原始数据(如文本、图像、视频和语音等)转化为机器能够理解和处理的特征的核心步骤。不同于传统的单一模态任务,在多模态学习中,如何有效地从每种模态中提取出有意…...
vue-treeselect显示unknown的问题及解决
问题 解决办法 去node-modules包里面找到这个组件的源码,在它dist文件里面找到这个文件,然后搜索unknown,把它删掉就可以解决了。...
代码随想录-训练营-day35
309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode) 这个题比起我们的买卖股票二来说多了一个冷冻期的说法,也就是我们卖出股票的第二天无法买入股票。 这样对我们而言,dp数组的含义,或者说dp数组中的状态显然就不能是…...
AI汽车新风向:「死磕」AI底盘,引爆线控底盘新增长拐点
2025开年,DeepSeek火爆出圈,包括吉利、东风汽车、上汽、广汽、长城、长安、比亚迪等车企相继官宣接入,掀起了“AI定义汽车”浪潮。 而这股最火的AI汽车热潮,除了深度赋能智能座舱、智能驾驶等AI竞争更白热化的细分场景࿰…...
【Blender】二、建模篇--06,曲线建模/父子级和蒙皮修改器
00:00:03,620 --> 00:00:09,500 前几节可能我们已经做了很多种类型的模型了 但是有一种类型 我们一直避开就是这种管道 1 00:00:10,050 --> 00:00:19,370 藤条头发啊 衣服架子啊这种弯弯绕绕的 需要一定柔软度的模型 那么这节课呢我们都来集中看一下曲线的模型 我们应该…...
【服务器与本地互传文件】远端服务器的Linux系统 和 本地Windows系统 互传文件
rz 命令:本地上传到远端 rz 命令:用于从本地主机上传文件到远程服务器 rz 是一个用于在 Linux 系统中通过 串口 或 SSH 上传文件的命令,它实际上是 lrzsz 工具包中的一个命令。rz 命令可以调用一个图形化的上传窗口,方便用户从本…...
被裁20240927 --- WSL-Ubuntu20.04安装cuda、cuDNN、tensorRT
cuda、cuDNN、tensorRT的使用场景 1. CUDA(Compute Unified Device Architecture) 作用: GPU 通用计算:CUDA 是 NVIDIA 的并行计算平台和编程模型,允许开发者直接利用 GPU 的并行计算能力,加速通用计算任…...
【架构】微内核架构(Microkernel Architecture)
微内核架构(Microkernel Architecture) 核心思想 微内核架构(又称插件式架构)通过最小化核心系统,将可扩展功能以插件模块形式动态加载,实现高内聚低耦合。其核心设计原则: 核心最小化:仅封装基础通用能力(如插件管理、通信机制、安全校验)功能插件化:所有业务功能…...
公务员行测之类比推理-新手小白
类比推理 前言学习类比推理1 语义关系1.1 近义1.2 反义1.3 象征、比喻 2 逻辑关系2.1 全同2.2 并列(1)矛盾并列(2)反对并列2.3 包容(1)种属(2)组成部分2.4 交叉2.5 对应关系…...
详解Nginx 配置
一、Nginx 介绍 Nginx 是一款轻量级的 Web 服务器 / 反向代理服务器及电子邮件(IMAP/POP3)代理服务器。它由俄罗斯的程序设计师 Igor Sysoev 所开发,自 2004 年发布以来,凭借其高性能、低内存消耗、高并发处理能力等特点…...
动静态链接与加载
目录 静态链接 ELF加载与进程地址空间(静态链接) 动态链接与动态库加载 GOT表 静态链接 对于多个.o文件在没有链接之前互相是不知到对方存在的,也就是说这个.o文件中调用函数的的跳转地址都会被设定为0(当然这个函数是在其他.…...
83_CentOS7通过yum无法安装软件问题解决方案
大家好,我是袁庭新。很多小伙伴在CentOS 7中使用yum命令安装软件时,出现无法安装成功的问题,今天给大家分享一套解决方案~ 在CentOS 7中,yum是一个常用的包管理工具,它基于RPM包管理系统。如果你发现yum无法使用,可能是由于多种原因造成的。以下是一些解决步骤,可以帮…...
在PyTorch中使用插值法来优化卷积神经网络(CNN)所需硬件资源
插值法其实就是在已知数据点之间估计未知点的值。通过已知的离散数据点,构造一个连续的曲线函数,预测数据点之间的空缺值是什么并且自动填补上去。 适用场景: 在卷积神经网络(CNN)中的应用场景中,经常遇到计算资源有限,比如显存不够或者处理速度慢,需要用插值来降低计…...
数据包在客户端和服务端,以及网络设备间如何传输的?
声明:文章中图片来自于网络收集,整体流程自己梳理。 目录 问题:如下socket客户端请求数据包如何传输的? 拓扑环境 数据包在分层间传输 网络分层L2/L3/L4 数据包收发-在各分层间变化 各层头部中-核心信息 数据包在不同设备…...
用Python实现Excel数据同步到飞书文档
目录 一、整体目标 二、代码结构拆解 三、核心逻辑讲解(重点) 1. 建立安全连接(获取access_token) 2. 定位文档位置 3. 数据包装与投递 四、异常处理机制 五、函数讲解 get_access_token() 关键概念解释 1. 飞书API访问…...
25林业研究生复试面试问题汇总 林业专业知识问题很全! 林业复试全流程攻略 林业考研复试真题汇总
25 林业考研复试,专业面试咋准备?学姐来支招! 宝子们,一提到林业考研复试面试,是不是就慌得不行,感觉老师会扔出一堆超难的问题?别怕别怕,其实林业考研复试就那么些套路,…...
js版本ES6、ES7、ES8、ES9、ES10、ES11、ES12、ES13、ES14[2023]新特性
ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言,本文讲述Javascript[ECMAScript]版本ES6、ES7、ES8、ES9、ES10、ES11、ES12、ES13、ES14[2023]的新特性,帮助朋友们更好的熟悉和使用Javascript ES5 1.严格模式 use strict2.Object getPrototypeOf,返回一个对象的原…...
vxe-table实现动态列
vxe-table实现动态列 1.动态列解释2.解决步骤2.1将后端返回的动态列表头,按照格式拼接在固定列表头上2.2将后端返回的列表数据按照键值对格式组装 1.动态列解释 正常列表是有固定的列;我的需求是,最初只知道表格的固定两列,查询数…...
尚硅谷爬虫note009
一、jsonpath 1.安装 pip install jsonpath 2.使用 只能解析本地文件 .json文件 {"store": {"book": [{"category": "reference","author": "Nigel Rees","title": "Sayings of the Century&qu…...
verilog笔记
Verilog学习笔记(一)入门和基础语法BY电棍233 由于某些不可抗拒的因素和各种的特殊原因,主要是因为我是微电子专业的,我需要去学习一门名为verilog的硬件解释语言,由于我是在某西部地区的神秘大学上学,这所…...
Java+SpringBoot+Vue+数据可视化的综合健身管理平台(程序+论文+讲解+安装+调试+售后)
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统介绍 在当今社会,随着人们生活水平的不断提高和健康意识的日益增强,健…...
正确清理C盘空间
一.系统清理 正确清理C盘空间主要是删除不需要的文件和应用程序,以释放磁盘空间。以下是一些常用的方法: 删除临时文件:在Windows搜索框中输入“%temp%”,打开临时文件夹,将其中的文件全部删除。 清理回收站…...
网站快速收录:如何设置robots.txt文件?
为了网站快速收录而合理设置robots.txt文件,需要遵循一定的规则和最佳实践。robots.txt文件是一个纯文本文件,它告诉搜索引擎爬虫哪些页面可以访问,哪些页面不可以访问。以下是如何设置robots.txt文件以助于网站快速收录的步骤和要点…...
