Hdu5178
Hdu5178
题意:
题目给你N个点,问有多少对点的长度小于K 。
解法:
首先将所给的坐标从大到小排序,则此题转化为:对排序后的新数列,对每个左边的\(x_a\)找到它右边最远的 $ x_b $ 使得 $ x_a - x_b \leq k $,累计所有的 $ b-a $ 的和即可。
具体实现可以使用二分。
CODE:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int N = 1e5 + 5;
#define LL long long
int n, k, T,v[N];
LL ans;
inline int work(int x, int tmp) {
int l = x, r = n, mid = (l + r) >> 1;
while(l <= r) {
if(v[mid] <= tmp)
l = mid + 1;
else r = mid-1;
mid = (l + r) >> 1;
}
return mid;
}
int main () {
scanf ("%d", & T);
while(T--) {
ans = 0;
scanf("%d%d",&n,&k);
for(int i = 1 ; i <= n ; ++i)
scanf ("%d", & v[i]);
sort(v + 1, v + n + 1);
for(int i = 1 ; i <= n ; ++i) {
int tmp = v[i] + k;
ans += (work(i, tmp) - i);
}
printf ("%lld\n", ans);
}
return 0;
}
Hdu5178的更多相关文章
- hdu5178 尺取
会爆int /* 给定数轴上一些点对,问有多少点对之间的距离差不超过k 点对排序后尺取法:枚举每个左边界,找到一个右边界使得 */ #include<bits/stdc++.h> #def ...
- hdu5178 pairs
题目 //打注释的是我的代码,一直超时,别人三行代码顶我一坨,同是尺取法,为什么 我的复杂度就这么高呢? #include <cstdio> #include <queue> ...
随机推荐
- 动手实现CNN卷积神经网络
数据集采用的是手写数据集(http://yann.lecun.com/exdb/mnist/): 本文构建的CNN网络图如下: 像素点:28*28 = 784,55000张手写数字图片. # -*- ...
- 解决tensorflow 调用bug Running model failed:Invalid argument: NodeDef mentions attr 'dilations' not in Op<name=Conv2D; signature=input:T, filter:T ->
将tensorflow C++ 版本更新为何训练版本一致即可
- React/react相关小结
React React组件由React元素组成,React组件使用React.Component或React.PureComponent来生成:React元素使用JSX的语法来编写或使用React.c ...
- angular轮播图
还是直接上代码比较好 <!doctype html><html lang="en"><head> <meta charset=" ...
- 2.原子变量 CAS算法
前面提到,使用volatile无法保证 变量状态的原子性操作,所谓原子性,就是不可再分 如:i++的原子性问题,i++ 的操作实际上分为三个步骤 "读-改-写" (1)保存i的值 ...
- vue组件间的传值方式及方法调用汇总
1.传值 a.父组件传子组件 方法一: 父页面: <myReportContent v-if="contentState==1" :paramsProps='paramsPr ...
- 阿里高级架构师教你使用Spring JMS处理消息事务源码案例
消费者在接收JMS异步消息的过程中会发生执行错误,这可能会导致信息的丢失.该源码展示如何使用本地事务解决这个问题.这种解决方案可能会导致在某些情况下消息的重复(例如,当它会将信息储存到数据库,然后监听 ...
- spark几个错误
一.java.lang.NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream.<init>(Ljava/io/InputStream ...
- go语言的defer语句
转: https://www.jianshu.com/p/5b0b36f398a2 ---------------------------------------------------------- ...
- MySQL之profiling性能分析(在5.6.14版本被丢弃)
官方建议使用information_schema.profiling. 原因是show profile 输出了查询执行的每个步骤及其花费的时间,但是结果很难快速确定哪个步骤花费的时间最多,因为输出是按 ...