luogu P1102 A-B 数对 |二分查找
2024-09-01 19:51:57
题目描述
出题是一件痛苦的事情!
题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈!
好吧,题目是这样的:给出一串数以及一个数字 C,要求计算出所有 A-B=C 的数对的个数。(不同位置的数字一样的数对算不同的数对)
输入格式
第一行包括22个非负整数N和C,中间用空格隔开。
第二行有N个整数,中间用空格隔开,作为要求处理的那串数。
输出格式
输出一行,表示该串数中包含的所有满足A-B=C的数对的个数。
说明/提示
对于73%73%的数据,N≤2000;
对于100%100%的数据,N≤200000。
所有输入数据都在longint范围内。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define int long long
using namespace std;
const int N=2e5+10;
int A[N];
signed main(){
int n,c;
cin>>n>>c;
for(int i=1;i<=n;i++)
scanf("%lld",A+i);
sort(A+1,A+n+1);
int ans=0;
for(int i=1;i<=n;i++){
int a=c+A[i];
int op=upper_bound(A+1,A+1+n,a)-A;
op-=lower_bound(A+1,A+1+n,a)-A;
ans+=op;
}
cout<<ans<<endl;
}
最新文章
- Centos6.x 下安装Jexus独立版
- MVC 解决 readonly 问题
- eclipse的maven项目,如何使用java run main函数
- RunLoop-Custom input source
- iOS UIWebView 添加tap手势 和 添加button 遇到的问题
- iOS---初识Swift(一)
- FPGA边缘检测
- python profile
- iOS开发拓展篇——如何把项目托管到GitHub
- 关于EF分页查询报错(Count must have a non-negative value.)的解决方案
- 项目结队开发---NABC分析(成员)
- MatrixTurn源码阅读
- linux - 文件查找及压缩
- HDU 1217 Arbitrage(Floyd的应用)
- Algorithm -->; 二进制中1的个数
- Python 之Web编程
- Django聚合分组查询、常用字段
- 5.list集合添加姓名{张三,李四,王五,二丫,钱六,孙七},将二丫替换为王小丫, 写入到";D:\\stuinfo.txt";
- Acceleration for ML 论文导读
- node.js+ react + redux 环境搭建
热门文章
- mount 和 /etc/fstab关系。
- 原来JS是这样的 - 原型链
- PHP Laravel-包含你自己的帮助函数
- [LC]141题 Intersection of Two Linked Lists (相交链表)(链表)
- win10 visual studio 2017环境中安装CUDA8
- 理解Spark运行模式(三)(STANDALONE和Local)
- 力扣(LeetCode)从不订购的客户-数据库题 个人题解
- oracle使用parallel并行,多线程查询
- LVM术语及相互关系
- Python爬虫的开始——requests库建立请求