洛谷——P1102 A-B数对
P1102 A-B数对
题目描述
出题是一件痛苦的事情!
题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的A+B Problem,改用A-B了哈哈!
好吧,题目是这样的:给出一串数以及一个数字C,要求计算出所有A-B=C的数对的个数。(不同位置的数字一样的数对算不同的数对)
输入输出格式
输入格式:
第一行包括2个非负整数N和C,中间用空格隔开。
第二行有N个整数,中间用空格隔开,作为要求处理的那串数。
输出格式:
输出一行,表示该串数中包含的所有满足A-B=C的数对的个数。
输入输出样例
4 1 1 1 2 3
3
说明
对于73%的数据,N <= 2000;
对于100%的数据,N <= 200000。
所有输入数据都在longint范围内。
2017/4/29新添数据两组
sort排序+模拟84分
![](/assets/blank.gif)
![](/assets/blank.gif)
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define N 200100 #define ll long long using 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<i;j++)if(a[i]-a[j]<=c)if(a[i]-a[j]==c) ans++;else break;else b=j;printf("%lld",ans);return 0; }
84分代码
map AC
#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=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
洛谷——P1102 A-B数对相关推荐
- 二分查找——A-B数对(洛谷 P1102)
题目选自洛谷P1102 分析题目,如果决定枚举A,那么问题就变成了统计数列中B+C出现了多少次. 把数列排列,那么B+C 会对应这个数列的连续一段.只要能快速找到这个连续段的左端点和右端点,也就是B+ ...
- 洛谷P2657 [SCOI2009]windy数
洛谷P2657 [SCOI2009]windy数 本题是一道数位DP 看程序应该能看懂 中心思想:把一个数拆成每一位来处理 代码: #include<bits/stdc++.h> usin ...
- 洛谷 P1254 扇区填数
洛谷 P1254 扇区填数 题目描述 有一个圆,当输入一个整数n(1≤n≤8)后,它被分成n个扇区,请你为每一扇区选择一个自然数(大于0的整数). 向各个扇区放入数之后,你可以从单个扇区中选出-个数, ...
- 洛谷刷题——P1255 数楼梯
题目:来源于洛谷 楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶. 编一个程序,计算共有多少种不同的走法. 输入格式 一个数字,楼梯数. 输出格式 输出走的方式总数. 输入输出样例 输入 #1 ...
- 网络流建模方法(四)—— 互不攻击问题 洛谷 P3353 骑士共存问题 (附 洛谷 P2774 方格取数问题)
网络流建模方法(四)互不攻击问题,或者说是共存问题, 这类题目看起来有点像二分图匹配,这类题目我们就是建一个二分图然后跑最大流 还是先说题目洛谷P3353 题目描述 在一个 nn个方格的国际象棋棋盘上 ...
- #数位dp#洛谷 4317 花神的数论题
感谢dalao@小粉兔的帮助 dalao's 博客园,dalao's 洛谷博客 题目 设f[i]f[i]f[i]表示iii转化为二进制后1的个数,求∏i=1nf[i]\prod_{i=1}^nf[i] ...
- (快速幂算法+高精度)洛谷P1045 麦森数
前言 故事的最后,让我们以一道十分经典的题目--<麦森数>来结尾.接受现实吧,总会有我们没准备过的高精度运算出现.我们固然可以提前把高精度的快速幂模板也准备好,但是总会有百密一疏的时候 ...
- 洛谷 P2359 三素数数
日常水一篇(滑稽) 题目描述 如果一个数的所有连续三位数字都是大于100的素数,则该数称为三素数数.比如113797是一个6位的三素数数. 输入输出格式 输入格式: 一个整数n(3 ≤ n ≤ 100 ...
- 洛谷 P1004 方格取数 【多线程DP/四维DP/】
题目描述(https://www.luogu.org/problemnew/show/1004) 设有N*N的方格图(N<=9),我们将其中的某些方格中填入正整数,而其他的方格中则放 人数字0. ...
最新文章
- 淘宝开源的代码质量检测工具!
- linux开放2280端口,威联通推出适用于NAS/PC的双端口 M.2 2280 PCIe NVMe SSD含双端口2.5GbE扩展卡...
- 数据结构 | 链表:1097 删除重复元素
- iOS项目中的网络请求和上下拉刷新封装
- R语言中,保留含有特定字符的元素
- oracle有几种类型表空间,oracle 数据创建时如何指定表空间类型
- JavaScript将JSON转换为字符串
- 2.基于梯度的攻击——FGSM
- 大学计算机基础试题 百度网盘,【分享】《大学计算机基础》试题题库及答案 ~~~~~~~~~~~...
- 华为网络技术比赛-note(2018)
- 实验二 帧中继的基本配置
- USGS下载Landset数据指南
- vs2019编译cryengine失败问题处理
- 微信小程序 nodejs+vue校园学生社团管理系统
- Spring-aop面向切面
- 网吧服务器点歌系统,网吧点歌系统(网吧点歌曲软件)
- 1224:整除的尾数 c语言
- 为什么大家都喜欢买白色的汽车
- 阿里云共享基本型 xn4 实例详解及使用建议
- 每日一课 | 一文总结Python四大数据类型
热门文章
- 下列代码之后的结果为()?
- spring三: 装配bean( 在xml中进行显式配置, 在java中进行显式配置)
- python七:编码
- Snapchat何以在Facebook包围下“杀出重围”?
- $.ajax json 在本地正常 上传服务器不正常
- linux alias命令参数及用法详解--linux定义命令别名alias
- java生成Json文件
- locks java_java中Locks的使用
- HyperWorks2020中文版
- java日期时间的转化