首页 > 其他分享 >洛谷题单指南-集合-P1102 A-B 数对

洛谷题单指南-集合-P1102 A-B 数对

时间:2024-03-21 09:33:42浏览次数:23  
标签:www P1102 int 洛谷题 数对 long ans

原题链接:https://www.luogu.com.cn/problem/P1102

题意解读:前文https://www.cnblogs.com/jcwy/p/18043197介绍了二分和双指针的做法,本文介绍hash的做法。

解题思路:

定义map<int, int> h,保存每个数+c出现的个数

同样,先将所有数由小到大哦排序

遍历每一个数x,答案累加ans += h[x]

然后把x+c个数累加h[x+c]++

最后输出答案即可

100分代码:

#include <bits/stdc++.h>
using namespace std;

const int N = 2e5 + 5;

int a[N], n, c;
map<int, int> h;
long long ans;

int main()
{
    cin >> n >> c;
    for(int i = 1; i <= n; i++) cin >> a[i];
    sort(a + 1, a + n + 1);
    for(int i = 1; i <= n; i++)
    {
        ans += h[a[i]];
        h[a[i] + c]++;
    }
    cout << ans;

    return 0;
}

 

标签:www,P1102,int,洛谷题,数对,long,ans
From: https://www.cnblogs.com/jcwy/p/18086618

相关文章

  • 洛谷题单指南-集合-P5266 【深基17.例6】学籍管理
    原题链接:https://www.luogu.com.cn/problem/P5266题意解读:本题考察map的应用。解题思路:直接使用map即可解题。100分代码:#include<bits/stdc++.h>usingnamespacestd;map<string,int>h;stringname;intn,op,score;intmain(){cin>>n;while(n--)......
  • 洛谷题单指南-集合-P5250 【深基17.例5】木材仓库
    原题链接:https://www.luogu.com.cn/problem/P5250题意解读:根据题目要求,需要一种数据结构,支持去重、排序、logN的查找,set是最合适的。解题思路:先回顾一下set的关键操作:设set<int>s;1、添加:s.insert(x)2、查询个数:s.count(x)3、查找第一个>=x的元素,返回迭代器:set<int>::iter......
  • 洛谷题单指南-集合-P3370 【模板】字符串哈希
    原题链接:https://www.luogu.com.cn/problem/P3370题意解读:本题要求理解哈希的原理,自行建立哈希表解题,如果直接使用map,就不推荐。解题思路:先介绍哈希的原理1、什么是哈希?什么是哈希表?先从一个问题出发:给定不超过105个整数(取值1~109),要统计不重复整数的数量。首先,如果取值范围......
  • 洛谷题单指南-集合-P1536 村村通
    原题链接:https://www.luogu.com.cn/problem/P1536题意解读:城镇之间现有的道路关系可以将城镇划分的若干集合,每个集合内的城镇是互通的,要计算最少增加多少条道路,使得每个集合都相通。解题思路:利用并查集,统计一共出现多少个集合,即p[i]=i的数量,最少的道路数即集合数-1,即可把所......
  • 洛谷题单指南-集合-P1551 亲戚
    原题链接:https://www.luogu.com.cn/problem/P1551题意解读:要判断两人是否是亲戚,只需要看两人是否属于一个集合,基于所有已知的亲戚关系,可以建立多个有亲戚关系的集合,这个过程可以借助并查集。解题思路:并查集:1、定义并查集是一种树形数据结构,本质上是多棵树,每棵树表示一个集合,......
  • C++高级面试题:解释 C++ 中的函数对象适配器
    解释C++中的函数对象适配器函数对象适配器是C++中的一种编程技术,用于修改或增强现有的函数对象的行为。它们通常通过组合或包装现有的函数对象来实现所需的功能。函数对象适配器允许我们在不修改原始函数对象的情况下,对其进行修改或扩展。这样可以实现代码的重用和可......
  • CPU的核心数与线程数对性能的影响是什么
    ​我们经常在CPU的配置参数中看到核心数和线程数,那你知道CPU的核心数与线程数对性能的影响是什么呢?核心数和线程数是越多越好吗?要弄清楚这个问题,我们必须先了解以下几个基础知识。什么是CPU核心?CPU核心,也称为处理器核心,是CPU的基本处理单元。每个核心都包含独立的算术逻辑单元、......
  • 洛谷题单指南-二叉树-P1185 绘制二叉树
    原题链接:https://www.luogu.com.cn/problem/P1185题意解读:在表格中绘制二叉树,有几个关键点1、结点用小写字母o 表示,对于一个父亲结点,用 / 连接左子树,用 \连接右子树,表格其余地方填空格。2、第m层结点若两个属于同一个父亲,那么它们之间由 3个空格隔开;若两个结点相邻但......
  • 洛谷题单指南-二叉树-P3884 [JLOI2009] 二叉树问题
    原题链接:https://www.luogu.com.cn/problem/P3884题意解读:要计算二叉树的深度、宽度、节点间的距离,深度、宽度的概念很好理解,节点间的距离描述是:节点u,v之间的距离表示从u到v的最短有向路径上向根节点的边数的两倍加上向叶节点的边数。说人话就是:u到v的距离=uv最近公共祖先到u......
  • 重写len函数对象魔术方法
    ###len魔术方法'''触发时机:使用len(对象)的时候自动触发功能:用于检测对象中或者类中某个内容的个数参数:一个self接受当前对象返回值:必须返回整型'''len(对象)=>类中的所有自定义成员classMyClass():pty1=1pty2=2__pty3=3deffunc1(): passdeffunc2(): ......