洛谷——P2421 A-B数对(增强版)
2024-09-03 07:34:54
题目背景
woshiren在洛谷刷题,感觉第一题:求两数的和(A+B Problem)太无聊了,于是增加了一题:A-B Problem,难倒了一群小朋友,哈哈。
题目描述
给出N 个从小到大排好序的整数,一个差值C,要求在这N个整数中找两个数A 和B,使得A-B=C,问这样的方案有多少种?
例如:N=5,C=2,5 个整数是:2 2 4 8 10。答案是3。具体方案:第3 个数减第1 个数;第3 个数减第2 个数;第5 个数减第4 个数。
输入输出格式
输入格式:
第一行2 个正整数:N,C。
第二行N 个整数:已经有序。注意:可能有相同的。
输出格式:
一个整数,表示该串数中包含的所有满足A-B=C 的数对的方案数。
输入输出样例
说明
对于50% 的数据:N 的范围是[1…1,000]。
对于另外50% 的数据:N 的范围是[1…100,000]。
对于100% 的数据:C 的范围是[1…1,000,000,000],N 个整数中每个数的范围是:[0…1,000,000,000]。
模拟
#include<map> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define N 200100 #define ll long long using namespace std; map<int,int>m; ll n,c,ans,a[N],maxn; ll read() { ll x=,f=; char ch=getchar(); ;ch=getchar();} +ch-',ch=getchar(); return x*f; } int main() { n=read(),c=read(); ;i<=n;i++) a[i]=read(),m[a[i]]++; sort(a+,a++n); ;i<=n;i++) ans+=m[a[i]+c]; printf("%lld",ans); ; }
最新文章
- ENode 1.0 - 框架的总体目标
- mysql中变量赋值
- c#中关键词out和ref的区别
- wireshark如何过滤 http数据包
- Java基础之读文件——使用通道读取混合数据2(ReadPrimesMixedData2)
- How to use HaploView
- 从scanf的学习接口设计
- linux上备份Oracle时EXP-00091的错误解决方法
- 积累的VC编程小技巧之编辑框
- C#调用winhttp组件 POST登录迅雷
- C Primer Plus 第9章 函数 编程练习
- BOM 浏览器对象模型_XMLHttpRequest 对象
- 堆叠式降噪自动编码器(SDA)
- Django 自带登录验证:authenticate和login,login_require,logout模块
- sass变量引入全局
- 微信 小程序组件 加入购物车全套 one js
- android的logcat详细用法!
- js和java判断值为空的方式
- 使用Scala
- slot的使用
热门文章
- Problem Collection I 位运算
- Codeforces Round #534 (Div. 2) D. Game with modulo(取余性质+二分)
- bzoj 1088 DP
- es查询格式
- cygwin与vim配置
- kuangbin带你飞 生成树专题 : 次小生成树; 最小树形图;生成树计数
- Linux指令详解useradd groupadd passwd chpasswd chage 密码修改
- mysql索引语法及示例
- jquery发送json请求,给springmvc接收
- [ Openstack ] Openstack-Mitaka 高可用之 计算服务(Nova)