2019 徐州icpc网络赛 E. XKC's basketball team

题库链接:

https://nanti.jisuanke.com/t/41387

题目大意

给定n个数,与一个数m,求ai右边最后一个至少比ai大m的数与这个数之间有多少个数

思路

对于每一个数,利用二分的方法求他右边大于等于ai+m的数的最后一个值。

关键在于怎么二分呢?

利用线段树存储区间最大值,看这个区间的最大值是不是比ai+m大

代码:

#include<bits/stdc++.h>
using namespace std;
#define maxn 1000005
#define mod 1000000007
int a[maxn];
struct node
{int l,r,ma;
}tree[maxn*4];
void build(int l,int r,int p)
{tree[p].l = l;tree[p].r = r;tree[p].ma = -1;if(l == r){tree[p].ma = a[l];return;}int mid = (l+r)/2;build(l,mid,p*2);build(mid+1,r,p*2+1);tree[p].ma = max(tree[p*2].ma,tree[p*2+1].ma);
}
int query(int x,int y,int p)
{if(x == tree[p].l && y == tree[p].r)return tree[p].ma;int mid = (tree[p].l + tree[p].r)/2;if(x > mid)return query(x,y,p*2+1);else if(y <= mid)return query(x,y,p*2);elsereturn max(query(x,mid,p*2),query(mid+1,y,p*2+1));}
int main()
{int T,i,j,k,n,q,x,y,m,s,l,r,mid;scanf("%d%d",&n,&m);for(i=1;i<=n;++i)scanf("%d",&a[i]);build(1,n,1);for(i=1;i<n;i++){s=m+a[i];l=i+1;r=n;while(l<r){mid=(l+r+1)/2;if(query(mid,r,1)>=s){l=mid;}else if(query(l,mid,1)>=s){r=mid-1;}else {break;}}if(a[l]>=s)cout<<l-i-1<<' ';elsecout<<"-1"<<' ';}cout<<"-1"<<endl;return 0;
}

 

转载于:https://www.cnblogs.com/dyhaohaoxuexi/p/11484004.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hive中COUNT的高级用法(条件过滤等)

在HIVE中&#xff0c;除了COUNT(*)外&#xff0c;COUNT还可以有很多高级用法。 SELECTtype, count(*), count(DISTINCT u), count(CASE WHEN plat1 THEN u ELSE NULL END), count(DISTINCT CASE WHEN plat1 THEN u ELSE NULL END), count(CASE WHEN (type2 OR type6) THEN u E…

前端学习(7):web的三大技术

HTML(5) 是一门标记型语言&#xff0c;主要由一些具备特殊含义的标签构成&#xff08;建筑物结构&#xff09; 所谓HTML是“超文本标记语言”的英文缩写。我们上网所看到网页&#xff0c;多数都是由HTML写成的。“超文本”是指页面内可以包含图片、链接&#xff0c;甚至音乐、…

SQL 关键字

Table B-1 列出了所由在 SQL 标准和 PostgreSQL 7.2 里是关键字的记号&#xff0e; 你可以在 Section 1.1.1 里找到 相关的背景信息&#xff0e; SQL 里有保留字(保留)和 非保留字之分&#xff0e;根据标准&#xff0c; 保留字是那些真正的关键字&#xff1b;我们决不能用它们…

scala的foreach和for

一句印象深刻的话&#xff0c;Alan Kay&#xff08;Smalltalk发明者&#xff09;说得一句话&#xff1a;“I’m not against types, but I dont know of any typesystems that arent a complete pain, so I still like dynamic typing”。 并不是静态类型不好&#xff0c;只是静…

Fedora7 安装完全过程

操作系统课要用Fedora7 安装配置真是一把辛酸泪呀..... 首先是找镜像文件&#xff08;这个就找了好久.....&#xff09;&#xff1a; https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/7/Fedora/x86_64/iso/ 下载下来&#xff08;很久&#xff09;之后&a…

前端学习(8):HTML的基本属性和结构

一、HTML文档结构 <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8"> <title>css样式优先级</title> </head> <body> </body> </html> <!DOCTYPE html>声明为HTML5文…

Scala:Function1、Function2

Function1 带一个参数的方法&#xff0c;声明时&#xff0c;它需要两个泛型参数&#xff0c;第一个是传入的数据类型&#xff0c;第二个表示返回的数据类型&#xff0c;Function1是 trait &#xff0c;它有一个apply方法&#xff0c;用来对输入参数进行处理了&#xff0c;使用…

如何更sql sever数据库表的所有者

dbo不是表caseTable的所有者,就无法在查询分析器里执行各种sql语句,提示:服务器: 消息 208&#xff0c;级别 16&#xff0c;状态 1&#xff0c;行 1对象名 caseTable 无效。 表一般默认的所有者是dbo,现在有几个表不是的,所以无法用sa来连接,请问怎么改回为dbo呢? EXEC sp_c…

借助云开发轻松实现后台数据批量导出丨实战

小程序导出数据到excel表&#xff0c;借助云开发后台实现excel数据的保存 我们在开发小程序的过程中&#xff0c;可能会有这样的需求&#xff1a;如何将云数据库里的数据批量导出到excel表里&#xff1f; 这个需求可以用强大的云开发轻松实现&#xff01; 这里需要用到云函数&a…

Storm的ack机制在项目应用中的坑

正在学习storm的大兄弟们&#xff0c;我又来传道授业解惑了&#xff0c;是不是觉得自己会用ack了。好吧&#xff0c;那就让我开始啪啪打你们脸吧。 先说一下ACK机制&#xff1a; 为了保证数据能正确的被处理, 对于spout产生的每一个tuple, storm都会进行跟踪。 这里面涉及到ac…

云开发数据库VS传统数据库丨云开发101

云开发数据库与传统数据库的不同 在小程序云开发中&#xff0c;最核心的便是三大组件&#xff1a;数据库、云存储和云函数&#xff0c;从今天开始&#xff0c;我们将开始隔日更的专栏文章&#xff0c;云开发101&#xff0c;在第一周&#xff0c;我们将从最最核心的数据库开始说…

前端学习(10):HTML语义化

我理解的HTML语义化 经过查看别人博文中的一些描述&#xff0c;我将HTML的语义化总结为&#xff1a; 用最恰当的标签来标记内容。 该如何理解呢&#xff1f;比如需要加入一个标题&#xff0c;这个标题的字体比正文的要大写&#xff0c;还要加粗。能够实现这种效果的方法有很多…

大尾端 小尾端

提到体系结构时&#xff0c;经常遇到大小尾端的概念&#xff0c;这里做个总结。 big endian&#xff1a;大尾端&#xff0c;也称大端&#xff08;高位&#xff09;优先存储。little endian&#xff1a;小尾端&#xff0c;也称小端&#xff08;低位&#xff09;优先存储。如下00…

Storm的BaseBasicBolt源码解析ack机制

我们在学习ack机制的时候&#xff0c;我们知道Storm的Bolt有BaseBasicBolt和BaseRichBolt。 在BaseBasicBolt中&#xff0c;BasicOutputCollector在emit数据的时候&#xff0c;会自动和输入的tuple相关联&#xff0c;而在execute方法结束的时候那个输入tuple会被自动ack。 在使…

博客中gitalk最新评论的获取 github api使用

博客中&#xff0c;对于网友的评论以及每篇文章的评论数还是很重要的。但是基于静态的页面想要存储动态的评论数据是比较难的&#xff0c;一般博客主题中都内置了评论插件&#xff0c;但是博客主题中对于最新评论的支持显示还是很少的&#xff0c;至少目前我是没怎么发现。博客…

前端学习(11):标题和段落

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>标题和段落</title> </head> <body><h1>我是歌谣</h1><h2>我是歌谣</h2><h3>我是歌谣</h3>&l…

Kafka文件存储机制

Kafka是什么 Kafka是最初由Linkedin公司开发&#xff0c;是一个分布式、分区的、多副本的、多订阅者&#xff0c;基于zookeeper协调的分布式日志系统(也可以当做MQ系统)&#xff0c;常见可以用于web/nginx日志、访问日志&#xff0c;消息服务等等&#xff0c;Linkedin于2010年贡…

用Zend Encoder加密PHP文件和PHP 优化配置

在发布一个你写好的PHP程序时&#xff0c;你是不是担心自已辛苦写出来的成果会被别人占为已有呢&#xff1f;其实我们可以用Zend Encoder为我们的PHP文件加上一层保护壳。 软件版本&#xff1a;2.0.1软件大小&#xff1a;10.2M适用平台&#xff1a;Win9X/2000/XP官方网址&#…

【vue开发】vue插件的install方法

MyPlugin.install function (Vue, options) {// 1. 添加全局方法或属性Vue.myGlobalMethod function () {// 逻辑...}// 2. 添加全局资源Vue.directive(my-directive, {bind (el, binding, vnode, oldVnode) {// 逻辑...}...})// 3. 注入组件Vue.mixin({created: function ()…

笑话

有一次坐公交拿了IC卡排队上车&#xff0c;前面一个人是扔硬币的&#xff0c;我大脑短路跟着把IC卡扔进去了…… ●早上要戴隐形眼镜&#xff0c;结果把盖打开直接把眼镜倒马桶里,然后镇定地倒入新的护理液,准备摘眼镜&#xff0c;半天摘不下来。 ●邻居忘了带钥匙&#xff0c;…