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
2019 徐州icpc网络赛 E. XKC's basketball team相关推荐
- [The Preliminary Contest for ICPC Asia Xuzhou 2019 - 徐州网络赛E] XKC's basketball team
XKC's basketball team XKC , the captain of the basketball team , is directing a train of nn team mem ...
- so easy(2019徐州icpc网络赛B)
题目链接:题目链接 当时这个题卡了好久,用了两个map一直超时. 一直想用并查集,但是一直想不出来怎么用.赛后问的lzh大佬才知道的. map+并查集. 1操作的时候,就把这个值的map设置为x+1. ...
- XKC's basketball team(2019徐州站网络赛E线段树)
题目链接:题目链接嘤嘤嘤 一开始以为是主席树,想明白了之后线段树就可以.从后往前遍历,线段树二分查找离这个数最远的数字.返回那个数的下标.这个数查找完了就把这个数插入到线段树里. 代码如下: #inc ...
- New Year and Old Subsequence CodeForces - 750E(线段树+矩阵dp)2019南昌icpc网络赛Hello 2019
A string t is called nice if a string "2017" occurs in t as a subsequence but a string &qu ...
- Factories Gym - 102222G(2018宁夏邀请赛暨2019银川icpc网络预选赛)
第一场icpc网络赛,出的去年宁夏邀请赛原题.c题还没有读完就有ak的了..(滑稽) Byteland has nn cities numbered from 11 to nn, and n−1n−1 ...
- ICPC网络赛第二场G Limit
ICPC网络赛第二场G Limit 题意: 给你数组a和b,求解: 1≤n≤100000,−100≤ai,bi≤100,0≤t≤5.1≤n≤100000,−100≤a_{i},b_{i}≤100,0≤ ...
- icpc网络赛第二场K Meal
icpc网络赛第二场K Meal 题意: 有n个人,n个菜, 现在n个人轮流吃菜,起初S中有n个菜,第i个人会在还没拿走的菜中随机选一个,拿走第j个菜的概率为ai,j∑k∈Sai,k\frac{a_{ ...
- J Red-Black Paths(ICPC网络赛第一场)
J Red-Black Paths(ICPC网络赛第一场) 题意: 有n个点,m次操作,有三种操作: 1 u v:从u向v建一个有向边 2 u:将点u染成红色 3 u: 将点u染成黑色 4 查询最新生 ...
- 2018ACM-ICPC徐州赛区网络赛: A. Hard to prepare(递推)
2018ACM-ICPC徐州赛区网络赛: A. Hard to prepare(递推) After Incident, a feast is usually held in Hakurei Shrin ...
最新文章
- C语言网络编程:TCP实现多线程实现多客户端
- “艾妮”(ANI)蠕虫病毒
- H3C RIPv2配置任务
- SpringMVC RequestMapping注解详解
- [转载] Win7下MATLAB 7.0下载地址和详细安装
- 索尼a5100_索尼相机分类,买相机不再发愁
- java判断端口是否可用
- 严蔚敏数据结构之线性表的基本操作
- 前端面试总结--数据结构与算法五
- 大学生 大创 软著申请指南(图文含模板)(专用于大创,这篇就够了!纯干货!)
- 2分钟学会小程序中使用vant组件库
- LabVIEW编程规范
- Linux之软件包安装——06
- 博客已死?移动互联网时代博客的价值
- C++程序设计(六)—— 继承和派生
- leetcode day 2 【1905. 统计子岛屿】 BFS/DFS
- 看得见风和日丽,看不见风起“云”涌
- python图书馆管理系统实验报告_基于python图书馆管理系统设计实例详解
- jsp如何使用layerui
- 关于SIP服务器opensips和Asterisk比较的好文章
热门文章
- java学习(146):file常用方法3
- Vue之$nextTick属性
- eureka需要替换吗_nacos无缝替换eureka
- 数据共享如何改变世界_如何改变他人?“我不会去改变这个世界,我们会去改变自己”。...
- RabbitMQ基本概念(三)-Centos7下安装RabbitMQ3.6.1
- localStorage和sessionStorage的简单使用
- 今天刚开通博客,很开心
- Java中String为什么是final
- 【SIGGRAPH 2015】【巫师3 狂猎 The Witcher 3: Wild Hunt 】顶级的开放世界游戏的实现技术。...
- 复合索引字段的排序对搜素的影响