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

洛谷P1102 A-B 数对题解

目录

  • 题目
    • A-B 数对
      • 题目背景
      • 题目描述
      • 输入格式
      • 输出格式
      • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
      • 提示
      • 传送门
  • 代码
    • 解释
    • 亲测

题目

A-B 数对

题目背景

出题是一件痛苦的事情!

相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈!

题目描述

给出一串正整数数列以及一个正整数 C C C,要求计算出所有满足 A − B = C A - B = C AB=C 的数对的个数(不同位置的数字一样的数对算不同的数对)。

输入格式

输入共两行。

第一行,两个正整数 N , C N,C N,C

第二行, N N N 个正整数,作为要求处理的那串数。

输出格式

一行,表示该串正整数中包含的满足 A − B = C A - B = C AB=C 的数对的个数。

样例 #1

样例输入 #1

4 1
1 1 2 3

样例输出 #1

3

提示

对于 75 % 75\% 75% 的数据, 1 ≤ N ≤ 2000 1 \leq N \leq 2000 1N2000

对于 100 % 100\% 100% 的数据, 1 ≤ N ≤ 2 × 1 0 5 1 \leq N \leq 2 \times 10^5 1N2×105 0 ≤ a i < 2 30 0 \leq a_i <2^{30} 0ai<230 1 ≤ C < 2 30 1 \leq C < 2^{30} 1C<230

2017/4/29 新添数据两组

传送门

https://www.luogu.com.cn/problem/P1102

代码

#include<bits/stdc++.h> // 包含所有常用的库文件
using namespace std;
long long n,c,a[200005],ans; // 声明变量int main() {map<int,int> m; // 创建一个空的映射对象 (map),用于统计元素个数cin >> n >> c; // 从标准输入读取n和c的值for(int i = 1; i <= n; i++) { // 从1循环到ncin >> a[i]; // 从标准输入读取一个整数,并赋值给数组a的第i个元素m[a[i]]++; // 使用映射对象m统计数组a中每个元素的个数}for(int i = 1; i <= n; i++) {ans += m[a[i] + c]; // 使用映射对象m查询数组a中与当前元素a[i]相差c的元素个数,并累加到变量ans中}cout << ans << endl; // 输出结果ans到标准输出return 0; // 程序正常结束的返回语句
}

解释

  1. #include<bits/stdc++.h>:这是一个预处理指令,用于将所有常用的库文件包含进来,省去了手动添加每个库文件的麻烦。

  2. using namespace std;:使用了std命名空间,这样就可以直接使用C++标准库的函数和对象,而无需前缀std::

  3. long long n, c, a[200005], ans;:声明了整数变量n、c,一个长整型数组a,和一个长整型变量ans。

  4. int main() {:程序的入口函数。

  5. map<int,int> m;:创建了一个名为mmap对象,键类型为整数int,值类型也为整数int

  6. cin >> n >> c;:从标准输入读取两个整数n和c,分别赋值给变量n和c。

  7. for(int i = 1; i <= n; i++) {:循环n次,每次执行以下代码块。

  8. cin >> a[i];:从标准输入读取一个整数,并将其赋值给数组a的第i个元素。

  9. m[a[i]]++;:将数组a的第i个元素的值作为键,对应的映射值加1。

  10. for(int i = 1; i <= n; i++) ans += m[a[i] + c];:循环n次,每次执行以下代码块。计算a[i] + c得到的值作为键,在map对象m中查找对应的映射值,并将其加到ans变量上。

  11. cout << ans << endl;:将ans的值输出到标准输出。

  12. return 0;:程序正常结束的返回语句。

这段代码通过使用map数据结构来统计数组a中特定元素的个数,并根据给定的差值c计算符合条件的组合个数,并将结果输出。

亲测

亲测 AC
在这里插入图片描述

http://www.lryc.cn/news/180495.html

相关文章:

  • 【Linux进行时】进程地址空间
  • 批量将文件名称符合要求的文件自动复制到新文件夹:Python实现
  • TensorFlow入门(一、环境搭建)
  • 90、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Hash 相关命令
  • 我开源了一个加密算法仓库,支持18种算法!登录注册业务可用!
  • FPGA设计时序约束二、输入延时与输出延时
  • 电阻的基础与应用
  • 5.html表格
  • 飞桨EasyDL-Mac本地部署离线SDK-Linux集成Python
  • 【kubernetes】Kubernetes中的DaemonSet使用
  • 《 新手》web前端(axios)后端(java-springboot)对接简解
  • 第七章 查找 十、散列查找
  • 第一章 C语言知识补充
  • 【Book And Paper 】
  • 计算机竞赛 深度学习疲劳检测 驾驶行为检测 - python opencv cnn
  • 代码随想录 动态规划 13
  • lv6 嵌入式开发-Flappy bird项目
  • 【Java】方法重写
  • 艺术表现形式
  • PHP 反序列化漏洞:手写序列化文本
  • react.js在visual code 下的hello World
  • CocosCreator3.8研究笔记(二十四)CocosCreator 动画系统-动画编辑器实操-关键帧实现动态水印动画效果
  • 第1篇 目标检测概述 —(3)YOLO系列算法
  • SpringBoot整合数据库连接
  • uni-app:canvas-绘制图形4(获取画布宽高,根据画布宽高进行图形绘制)
  • EM@坐标@函数@图象的对称和翻折变换
  • Python之json模块
  • 机器学习---BP算法
  • 继苹果、联发科后,传高通下一代5G芯片将由台积电以3纳米代工
  • 【自定义类型】--- 位段、枚举、联合