题目大意:给定一个长度为 N 的序列,求序列中最大值和最小值相差小于 K 的连续段的个数。

题解:

最大值和最小值相差不超过 K 是一个在值域角度的限制,应考虑采用平衡树或权值...数据结构进行维护。

连续的一段即可考虑采用双指针进行维护即可。

注意:

  • r 是当前需要判断的情况,故 r 从 1 开始。

代码如下

#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
typedef long long LL; int n,k,a[maxn];
multiset<int> s; void read_and_parse(){
s.clear();
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
}
bool right(int val){
if(s.empty())return 1;
else return abs(*s.begin()-val)<k&&abs(*--s.end()-val)<k;
}
void solve(){
LL ans=0;
for(int l=1,r=1;l<=n;l++){
while(r<=n&&right(a[r]))s.insert(a[r++]);
ans+=r-l;
s.erase(s.find(a[l]));
}
printf("%lld\n",ans);
}
int main(){
int T;scanf("%d",&T);
while(T--){
read_and_parse();
solve();
}
return 0;
}

【HDU5289】Assignment的更多相关文章

  1. 【HDU 2853】Assignment (KM)

    Assignment Problem Description Last year a terrible earthquake attacked Sichuan province. About 300, ...

  2. 【转】KM匹配题集

    转自:http://blog.csdn.net/shahdza/article/details/7779324 [HDU]2255 奔小康赚大钱 模板题★1533 Going Home 模板题★242 ...

  3. 【转载】图论 500题——主要为hdu/poj/zoj

    转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  4. HDU 5874 Friends and Enemies 【构造】 (2016 ACM/ICPC Asia Regional Dalian Online)

    Friends and Enemies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

  5. 【转】iOS Provisioning Profile(Certificate)与Code Signing详解 -- 待看

    原文网址:http://blog.sina.com.cn/s/blog_82c8198f0102vy4j.html 引言 关于开发证书配置(Certificates & Identifiers ...

  6. 【转】C++中的位拷贝与值拷贝

    [转]http://blog.csdn.net/liam1122/article/details/1966617 为了便于说明我们以String类为例: 首先定义String类,而并不实现其成员函数. ...

  7. 【整理】Object-C中的属性(Property)的Setter:assign,copy,retain,weak,strong之间的区别和联系

    iOS编程过程中,经常看到一些属性前面有些修饰符,比如copy,retain等. 这些关键字,是Object-C语言中,对于Property的setter. Mac官网: The Objective- ...

  8. 【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

    [导读]TensorFlow 在 2015 年年底一出现就受到了极大的关注,经过一年多的发展,已经成为了在机器学习.深度学习项目中最受欢迎的框架之一.自发布以来,TensorFlow 不断在完善并增加 ...

  9. Spring生态研习【三】:Spring-kafka

    1. 基本信息介绍 基于spring的kafka应用,非常简单即可搭建起来,前提是要有一个kafka的broker集群.我在之前的博文里面已经介绍并搭建了一套broker环境,参考Kafka研究[一] ...

随机推荐

  1. opencv、numpy中矩阵转置,矩阵内的固定位置相应的坐标变换

    opencv.numpy中矩阵转置,矩阵内的固定位置相应的坐标变换

  2. Python学习之数据库

    9.6 表的查询 [结构]select distinct 字段1,字段2 from 表名 where 条件 group by 字段 having 筛选 order by 字段 limit 限制条数 [ ...

  3. [开发技巧]·TopN指标计算方法

    [开发技巧]·TopN指标计算方法 ​ 1.概念介绍 在图片分类的中经常可以看到Top-1,Top-5等TopN准确率(或者时错误率). 那这个TopN是什么意思呢?首先Top-1准确率最好理解,就是 ...

  4. 【机器学习】【数字信号处理】矢量量化(Vector Quantization)

    http://blog.csdn.net/zouxy09 这学期有<语音信号处理>这门课,快考试了,所以也要了解了解相关的知识点.呵呵,平时没怎么听课,现在只能抱佛脚了.顺便也总结总结,好 ...

  5. 9.Jmeter 多个threadgroup 中的配置元件会一次性进行初始化

    例如3个threadGroup,每一个threadGroup中都会定义了 一些配置原件,例如 用户定义变量,  jdbc 链接配置等.  当执行testplan(测试计划)时, 这些配置元件会一起初始 ...

  6. json得回顾

  7. 字符串转Interger

    public static void main(String[] args) { String t = "5"; Integer integer = Integer.valueOf ...

  8. C语言课程程序设计

    项目名称和目标 项目为基于EasyX库的RPG游戏,目标能实现控制游戏主角自由移动,能与NPC对话交互. 我组目前还未确定具体项目名称 项目主体功能 项目的主体功能具有一个游戏所拥有的完整功能,包括但 ...

  9. Vector和ArrayList的区别联系,Hashtable和HashMap的区别联系

    Vector.Hashtable是早期的集合类,线程安全,但是效率低下,被相同原理.结构的ArrayList.HashMap取代. 1.Vector和ArrayList的区别和联系: 联系:实现原理相 ...

  10. 作业调度框架Quartz.NET-现学现用-02-任务监听 - 简书

    原文:作业调度框架Quartz.NET-现学现用-02-任务监听 - 简书 前言 任务调度系统并不是完美的,它会出现任务执行失败的情况.如果你需要处理任务失败后的逻辑,希望这篇笔记可以为你提供些帮助. ...