博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷——P1102 A-B数对
阅读量:6614 次
发布时间:2019-06-24

本文共 1562 字,大约阅读时间需要 5 分钟。

P1102 A-B数对

题目描述

出题是一件痛苦的事情!

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

好吧,题目是这样的:给出一串数以及一个数字C,要求计算出所有A-B=C的数对的个数。(不同位置的数字一样的数对算不同的数对)

输入输出格式

输入格式:

 

第一行包括2个非负整数N和C,中间用空格隔开。

第二行有N个整数,中间用空格隔开,作为要求处理的那串数。

 

输出格式:

 

输出一行,表示该串数中包含的所有满足A-B=C的数对的个数。

 

输入输出样例

输入样例#1: 
4 11 1 2 3
输出样例#1: 
3

说明

对于73%的数据,N <= 2000;

对于100%的数据,N <= 200000。

所有输入数据都在longint范围内。

2017/4/29新添数据两组

 

sort排序+模拟84分

#include
#include
#include
#include
#define N 200100#define ll long longusing namespace std;ll n,c,b,ans,a[N];ll read(){ ll x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){
if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int main(){ n=read(),c=read(),b=1; for(int i=1;i<=n;i++) a[i]=read(); sort(a+1,a+1+n); for(int i=1;i<=n;i++) for(int j=b;j
84分代码

map AC

#include#include
#include
#include
#include
#define N 200100#define ll long longusing namespace std;map
m;ll n,c,ans,a[N],maxn;ll read(){ ll x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int main(){ n=read(),c=read(); for(int i=1;i<=n;i++) { a[i]=read(); m[a[i]]++; maxn=max(maxn,a[i]); } sort(a+1,a+1+n); for(int i=1;i<=n;i++) if(a[i]+c>maxn) break; else ans+=m[a[i]+c]; printf("%lld",ans); return 0;}

 

转载于:https://www.cnblogs.com/z360/p/7875212.html

你可能感兴趣的文章
备胎的养成记KeepAlived实现热备负载
查看>>
Android -- Scroller
查看>>
[XAML学习资料] XAML 概述一
查看>>
Amazon RDS的通用型存储(SSD)
查看>>
发现并防止托管代码中出现内存泄漏
查看>>
Redis+TwemProxy(nutcracker)集群方案部署记录
查看>>
相等与全等
查看>>
VS无法设置断点的解决方案
查看>>
Android -- 再来一发Notification
查看>>
从尾到头打印链表
查看>>
android 开发之电子钢琴 源码
查看>>
Java的jar文件安装成windows 服务
查看>>
MapGuide中怎么实现“指哪儿打哪儿”?ToolTip帮你忙~
查看>>
GridView添加统计(合计)行
查看>>
第3部分。XAML标记扩展
查看>>
Linux 定时运行脚本、命令
查看>>
如何让你的程序运行的更快(1)之续---揭秘StringBuffer的capacity
查看>>
php mysqli mysqli_query() mysqli_real_query()
查看>>
开源欣赏wordpress之用户新增user-new.php
查看>>
管理Mysql常用指令
查看>>