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…
会爆int /* 给定数轴上一些点对,问有多少点对之间的距离差不超过k 点对排序后尺取法:枚举每个左边界,找到一个右边界使得 */ #include<bits/stdc++.h> #define maxn 100005 using namespace std; int n,k,sum,l,r,x[maxn]; long long ans; int main(){ int t; scanf("%d",&t); while(t--){ scanf("%d%d&…
题目 //打注释的是我的代码,一直超时,别人三行代码顶我一坨,同是尺取法,为什么 我的复杂度就这么高呢? #include <cstdio> #include <queue> #include <stack> #include <algorithm> using namespace std; const int MAX_N = 100010; int arr[MAX_N]; int main() { int n, s; long long ans; int…