P1102 A-B 数对

news2024/11/26 15:45:53

题目背景

出题是一件痛苦的事情!

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

题目描述

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

输入格式

输入共两行。

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

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

输出格式

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

输入输出样例

输入 #1复制

4 1
1 1 2 3

输出 #1复制

3

说明/提示

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

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

2017/4/29 新添数据两组

1.这个题目不能够纯暴力解决。

2.这里我的思路是我们先排序,找到最大的小于A+C的坐标,然后再去循环看B==A+C的数字,然后记录下来,我们每次都需要刷新k的值是为了保证循环少走。

但是代码第二个和第三个测试点TLE了

 C代码如下:

#include<stdio.h>
#define N 200020
long long a[N];
int quicksort(int left,int right)
{
	if(left>=right) return 0;
	int i=left,j=right;
	long long t,temp=a[left];
	while(i<j)
	{
		while(i<j&&a[j]>=a[left]) j--;
		while(i<j&&a[i]<=a[left]) i++;
		if(i<j)
		{
			t=a[i];a[i]=a[j];a[j]=t;
		}
	}
	a[left]=a[i];
	a[i]=temp;
	quicksort(left,i-1);
	quicksort(i+1,right);
	return 0;
}
int main()
{
	int n,c,i,j,sum=0,k;
	scanf("%d%d",&n,&c);
	for(i=0;i<n;i++)
	{
		scanf("%lld",&a[i]);
	}
	quicksort(0,n-1);
	i=0,j=n-1;
	while(a[j]-a[i]>c&&j>i) j--;
	while(a[j]-a[i]==c&&j>i)
	{
		sum++;
		j--;
	}
	k=j+1;
	for(i=1,j=k;i<n;i++)
	{
		while(a[k]-a[i]<c&&k<n) k++;
		j=k;
		while(a[j]-a[i]==c&&j<n)
		{
			j++;
			sum++;
		}
		if(k>=n) break;
	}
	printf("%d\n",sum);
	return 0;

}

C++代码如下:

 

#include<iostream>
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
const int N=200020;
long long a[N];
bool cmp(long long a,long long b)
{
	return a<b;
}
int main()
{
	int n,c,i,j,sum=0,k;
	scanf("%d%d",&n,&c);
	for(i=0;i<n;i++)
	{
		scanf("%lld",&a[i]);
	}
	sort(a,a+n,cmp);

	k=1;
	for(i=0,j=k;i<n;i++)
	{
		while(a[k]-a[i]<c&&k<n) k++;
		j=k;
		while(a[j]-a[i]==c&&j<n)
		{
			j++;
			sum++;
		}
		if(k>=n) break;
	}
	printf("%d\n",sum);
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vb.net多功能白板(集成:绘图,编辑,批注,橡皮,图片处理,拍摄,裁剪,旋转等功能

根据上一次的自定义白板&#xff0c;我已经更新了很多内容了 这一次打算再细一点 初始化程序&#xff1a;所有的整体变量&#xff08;作者提醒&#xff0c;请不要直接照抄代码&#xff0c;可以和作者发的文件进行学习和参考 Public ListOfPen As New List(Of Bitmap)Public L…

ArcGIS如何进行自动矢量化操作

这里我们在网络上找一幅高中地理课本上看的等高线图给大家能进行操作演示。 等高线图 01 地理配准 1、定义投影 给数据框定义一个投影&#xff0c;右键Layers>Properties>Coordinate System>Projected Coordinate Systems>Gauss Kruger>Beijing1954> Be…

雅思经验总结(1)

听力技巧&#xff1a;听sections 3就是看你何时进入状态&#xff0c;还有审题&#xff0c;之后就是听but&#xff0c;其他的转折词什么yet because however什么都非常的少&#xff0c;最主要的还是but&#xff0c;注意bus之后的话&#xff0c;其余的什么细节题就是说还要听懂文…

Biome-BGC生态系统模型区域模拟

Biome-BGC是利用站点描述数据、气象数据和植被生理生态参数&#xff0c;模拟日尺度碳、水和氮通量的有效模型&#xff0c;其研究的空间尺度可以从点尺度扩展到陆地生态系统。在Biome-BGC模型中&#xff0c;对于碳的生物量积累&#xff0c;采用光合酶促反应机理模型计算出每天的…

Java面向对象进阶之static

目录static静态关键字static&#xff1a;修饰成员变量&#xff0c;内存机制static是什么、修饰成员变量的方法总结static修饰成员变量的内存原理static&#xff1a;修饰成员方法、内存机制static修饰成员方法的基本用法总结static修饰成员方法的内存原理static的注意事项static…

计算机组成原理习题二

计算机组成原理习题二 文章目录计算机组成原理习题二1、某指令系统的指令格式如下&#xff1a;答案&#xff1a;(1)152301Q1101 010011 000 001I10&#xff0c;I21&#xff0c;Z/C0&#xff0c;D/I0&#xff0c;故为变址寄存器2寻址&#xff0c;EA(I2)A063215301063516Q。 (4)…

大咖年终“讲” 维视教育李明睿——制造业转型升级下需要重新定义人才培养

数字化转型迫在眉睫建设应用型大学风潮正涌制造企业在推进智能制造和数字化转型进程中&#xff0c;衍生出大量人才需求。据人社部、工信部发布的《制造业人才发展规划指南》显示&#xff0c;中国制造业10大重点领域人才缺口2025年将接近3000万人&#xff0c;缺口率高达48&#…

流媒体基础-RTCP

1、RTCP的封装 RTP需要RTCP为其服务器质量提供保证&#xff0c;周期性发送 RTCP的主要功能是&#xff1a;服务质量的监视、反馈&#xff08;QoS&#xff09;、媒体间的同步&#xff08;Sync&#xff09;&#xff0c;以及多播组中成员的标识。在RTP会话期间&#xff0c;各参与者…

Lichee_RV学习系列---认识Lichee_RV、环境搭建和编译第一个程序

系列文章目录 文章目录系列文章目录前言一、认识Lichee RV1、D1-H 芯片2、Lichee RV开发板3、系统镜像二、Lichee RV 固件烧录1、要求基本硬件2、基本资料下载3、固件烧录在这里插入图片描述三、连接上开发板1、ADB方式连接a&#xff1a;ADB下载b&#xff1a;ADB连接c&#xff…

孙溟㠭篆刻《无有中无尽藏》

《无有中无尽藏》孙溟㠭篆刻 无一物中无尽藏&#xff0c;是说当“我执”袪除&#xff0c;仅余“真如”时&#xff0c;便可以理解“无尽藏”。虽然身上没有东西&#xff0c;但是其实世人身上藏了所有的东西。“无心”亦是有心&#xff0c;心中富足。所以当人祛除心中的偏执&…

自动语音识别(ASR)研究综述

自动语音识别ASR研究综述 一、语言识别基础知识 从语音系统识别构成来讲&#xff0c;一套完整的语音识别系统包括&#xff1a;预处理、特征提取、声学模型、语言模型、以及搜索算法等模块&#xff0c;具体结构示意图如下所示: 特征提取&#xff08;MFCC声学特征&#xff09…

Error handling response: TypeError: self.processResponse is not a function

问题背景 &#xff1a; 自己在搭建 Vue 初始模板架子的时候 &#xff0c; 解决完 router 路由的报错问题后 &#xff0c; 控制台还剩下一个显眼的 Error 红色 Bug &#xff0c; 不解决的话看着难受 &#xff0c; 盘它 &#xff01; 点击报错内容后进入 &#xff1a; Error h…

redis应用笔记

1.登录服务 在登陆服务中,如果将数据全部存储到tomcat中,当存在多个tomcat的时候,数据是无法同步的,这就导致了数据的共享问题: 1、每台服务器中都有完整的一份session数据&#xff0c;服务器压力过大。 2、session拷贝数据时&#xff0c;可能会出现延迟 解决办法就是采用redi…

SpringBoot整合Redis实现优惠券秒杀服务(笔记+优化思路版)

本文属于看黑马的redis的学习笔记&#xff0c;记录了思路和优化流程&#xff0c;精简版最终版请点击这里查看。 文章目录一、全局ID生成器1.1 理论1.1.1 全局唯一ID生成策略1.2 代码(Redis自增)二、实现优惠券秒杀下单2.1 SQL2.2 SQL对应实体类2.2.1 普通券实体类2.2.2 秒杀券实…

声纹识别之说话人验证speaker verification

目录 一、speaker verification简介 二、主流方案和模型 1、Ecapa_TDNN模型 2、WavLm 三、代码实践 1、Ecapa_TDNN方案 a、模型结构 b、loss c、数据处理 d、模型训练和评估 e、说话人验证推理 2、WavLm预训练方案 a、模型结构和loss b、数据处理 c、模型训练 …

html5支持的几种音频格式介绍

关于音频的格式 ogg音频 Ogg全称应该是OGGVobis(oggVorbis)是一种新的音频压缩格式&#xff0c;类似于MP3等的音乐格式。Ogg是完全免费、开放和没 有专利限制的。OggVorbis文件的扩展名是.OGG。Ogg文件格式可以不断地进行大小和音质的改良&#xff0c;而不影响旧有的编码器或…

合合信息扫描全能王“照片高清修复”功能上线,3秒还原老照片

穿越时光的“美颜”!合合信息智能图像处理技术让老照片“焕新”“春运”已经开始&#xff0c;团聚时刻即将到来。和亲人们一起围炉话家常&#xff0c;翻开旧日的相册&#xff0c;品读一张张泛黄的照片背后最牵动人心的情感&#xff0c;也是“年味”所在。时光会在照片上留下斑驳…

巨量引擎·2023教育Future大会:扎根内容生态,做好经营提效

求知方寸间&#xff0c;如风过千川。当知识创作成为新的潮流&#xff0c;当教育数字化迈入直播与短视频新时代&#xff0c;当图书电商红红火火&#xff0c;如何做好教育全产业链升级与创新&#xff1f;新年伊始&#xff0c;巨量引擎举办“行知.行为.行万里 2023教育Future大会”…

嵌入式实时操作系统的设计与开发(六)

中断系统结构 在RTOS中&#xff0c;中断是与具体硬件平台关联度最大的部分&#xff0c;为了实现高可移植性、可配置性&#xff0c;中断子系统依照aCoral的整体结构来设计&#xff0c;划分为HAL&#xff08;硬件抽象层&#xff09;和内核层。 在HAL层先将各种中断汇拢&#xff…

第三周周二1.10

-A 添加规则 -I 插入 -F 清空 -L 查看 -p 调整默认规则 -D 删除规则 dport : -j ACCEPT DROP REJECT LOG /var/log/messages -n 以数字的形式显示结果 -v 详细信息 -x 精确的 -line-number 行号 删除&#xff1a;指…