首页 > 其他分享 >洛谷 p1102 A-B数对

洛谷 p1102 A-B数对

时间:2023-04-18 09:12:28浏览次数:34  
标签:正整数 p1102 题目 int 数对 long num 洛谷

题目背景

出题是一件痛苦的事情!

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

题目描述

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

输入格式

输入共两行。

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

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

输出格式

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

输入输出样例

输入 #1
4 1
1 1 2 3
输出 #1
3

说明/提示

对于 75% 的数据,1≤N≤2000。

对于 100% 的数据,1≤N≤2×105,0≤ai<230,1≤C<230

2017/4/29 新添数据两组

题解:

我们可以统计每个数的次数,然后a-b=c,那么我们可以看出a+c=b,及找出符合规范的a和b就行了,所以代买如下:

#include<iostream>
#include<map>
using namespace std;
const int N = 10 + 1e6;
long long num[N];
int main()
{
	int n;
	int c;
	map<int,int>ma;
	cin >> n >> c;
	for (int i = 1; i <= n; i++)
	{
		cin >> num[i];
		ma[num[i]]++;//计数
	}
	long long ans = 0;
	//a-b=c
	//所以a+c=b
	for (int i = 1; i <= n; i++)
	{
		ans += ma[num[i] + c];
	}
	cout << ans;
	return 0;
}

 看数据范围就知道,平常的数组是存储不了的,所以改用map实现;

 

Good luck!

 

标签:正整数,p1102,题目,int,数对,long,num,洛谷
From: https://www.cnblogs.com/haggard/p/17328289.html

相关文章

  • 洛谷P7492 [传智杯 #3 决赛] 序列 题解 数列分块
    题目链接:https://www.luogu.com.cn/problem/P7492解题思路:分块。解题思路全部来自yzy1大佬的博客额外掌握技能:编译时加入-Wall参数。示例程序:#include<bits/stdc++.h>usingnamespacestd;constintmaxn=1e5+5;intn,m,blo,//n表示数列长度,m表......
  • this指针 (保存调用成员函数对象的地址)
    1.在调用成员函数前,先将对象地址存入ecx寄存器,进入函数后将ecx压栈保存对象地址,当需要用到this指针时,再弹栈取出赋值给函数内部自带的一个this指针2.数据成员是由this指针+偏移取到的。类的对齐规则和结构体一致3.静态成员函数没有this指针4.若函数形参和成员......
  • 洛谷T226686 长度为2的子串
    题目描述给你一个长度为n 的由大写的英文字母组成的字符串,请你找出出现频率最高的长度为2的子串。输入格式包括两行。第一行是一个正整数n,表示字符串长度。第二行是长度为n的大写英文字母组成的字符串。(2<=n<=100)输出格式包括一行。一个长度为2的字符串,该字符串为输入......
  • 【rmq】洛谷P7333
    题目:P7333[JRKSJR1]JFCA-洛谷|计算机科学教育新生态(luogu.com.cn)分析:用rmq处理出各个区间长度的最大值,然后在二分区间长度找到答案(最开始想的是开长度为n的数组,对位置i的数,分别找1-(i-1)和(i+1)-n中的离i最近满足条件的位置,然后更新结果,但一直wa,还没找到问题,存疑吧)代码:......
  • 灰狼、鲸鱼、人工蜂群算法matlab 程序采用CEC21测试函数对灰狼算法、鲸鱼算法、人工蜂
    灰狼、鲸鱼、人工蜂群算法matlab程序采用CEC21测试函数对灰狼算法、鲸鱼算法、人工蜂群算法的性能进行测试,可以得到相同测试环境(相同种群数量和迭代次数)的算法对比结果,附赠CEC21测试函数包和介绍资料。ID:4290671868436557......
  • 洛谷 P3292 [SCOI2016]幸运数字
    https://www.luogu.com.cn/problem/P3292多次询问求一条链取若干点的最大异或和考虑一个集合的最大异或和可以求出线性基完成,两个集合的线性基可以合并,但是线性基并没有可减性,于是我们求lca的时候只能每次往集合里添加一条链,为了保证复杂度只能用倍增做。std::vector<i64>......
  • 1835. 所有数对按位与结果的异或和
    题目描述给了列表异或和的定义现在的列表是arr1和arr2构造出来的,元素对是arr[i]andarr[j]问以上列表的异或和?f1-依次确定答案的每一位基本分析为什么考虑计算答案的每一位?表达式只包含位运算(按位与和按位异或)具体怎么计算?要知道答案的第k为是1还是0->分别计算arr1和arr......
  • w1 洛谷T233243
      主要思路就是计算每一个长度为2的子串出现的次数,计数的同时用数组记录次数,打擂台找到出现次数最多的子串,首字符出现的位置就是数组的下标。最后输出出现最多的子串。代码如下:#include<bits/stdc++.h>usingnamespacestd;intcnt[100];intmain(){ intn,max=-1; ......
  • 洛谷P2415 集合求和(数学问题,使用集合子集求和公式)
    可以知道对于一个有n个数据的集合,其子集个数有2^n个至于证明可以这样理解,对于n个数据,其子集就是对数据进行组和,而对于每个位置上的数据,组合时仅有两种状态即有此数据或无此数据,也就是有两种可能,而对于n个数据,就有2^n种可能不妨设其中一个非空数据X,对于X,依据X可以将子集划分为两......
  • 洛谷与 Codeforces 的难度评级
    为了比较CF与洛谷的题目难度评级,我写了一个爬虫,爬取了CF题目在源站和洛谷中的难度,并进行比较。这里先给出两者的换算:洛谷入门普及-普及/提高-普及+/提高提高+/省选-省选/NOI-NOI/NOI+/CTSCCF800900-11001200-15001600-19002000-23002400-29003000-350......