博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[HDU](5178)pairs ---二分查找(查找)
阅读量:5371 次
发布时间:2019-06-15

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

pairs

Problem Description
John has 
n points on the X axis, and their coordinates are 
(x[i],0),(i=0,1,2,,n1). He wants to know how many pairs
<a,b> that 
|x[b]x[a]|k.(a<b)
Input
The first line contains a single integer 
T (about 5), indicating the number of cases.
Each test case begins with two integers 
n,k(1n100000,1k109).
Next 
n lines contain an integer 
x[i](109x[i]109), means the X coordinates
Output
For each case, output an integer means how many pairs
<a,b> that 
|x[b]x[a]|k.
Sample Input
 
2 5 5 -100 0 100 101 102 5 300 -100 0 100 101 102
Sample Output
 
3 10
解题新知:
①题意:
给你N个数分别为x0,x1,……xn-1,给你一个数K,询问你满足|xb-xa|<k   (a<b)情况有几种
②思路:题意很简单,如果暴力枚举,复杂度为O(n^2),肯定超时。那么我们可以用二分的思想,找到满足|xb-xa|的极限位置
AC代码:
#include
#include
#include
#include
using namespace std;long long x[100005];int main(){ int t; scanf("%d",&t); while(t--) { int n,k; scanf("%d %d",&n,&k); for(int i=0;i
k) //寻找比x[i]大的极限位置 r=mid-1; else l=mid+1; } num=num+r-i; } cout<
<

转载于:https://www.cnblogs.com/WangMeow/p/7535955.html

你可能感兴趣的文章
Linux的加密认证功能以及openssl详解
查看>>
[Tools] 使用XP远程登录Win8系统
查看>>
【RL-TCPnet网络教程】第38章 TFTP简单文件传输基础知识
查看>>
HDU- 2265 Encoding The Diary
查看>>
socket基本概念
查看>>
[第三方]SCNetworkReachability 获取网络状态控件使用方法
查看>>
在Windows上使用putty连接一台Linux主机
查看>>
Socket常见错误
查看>>
百度地图2.0API和3.0API。你想要的百度地图的这都有
查看>>
专业词汇
查看>>
星期五的收获
查看>>
proxmox 去除订阅提示
查看>>
使用Html.EditorFor()为文本框加上maxlength,placeholder等属性
查看>>
[转]后缀数组求最长重复子串
查看>>
设计模式——外观模式详解
查看>>
MVC3 控件
查看>>
mysql (一)
查看>>
photoshop图层样式初识1
查看>>
【.NET】使用HtmlAgilityPack抓取网页数据
查看>>
typedef的使用
查看>>