hdu 5289 Assignment (rmq模版)
来源:互联网 发布:越狱苹果抹除所有数据 编辑:程序博客网 时间:2024/05/17 01:24
/*rmq模版*/#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>using namespace std;const int MAXN = 100100;int n,query;int A[MAXN];int FMin[MAXN][20],FMax[MAXN][20];void Init(){ int i,j; for(i=1; i<=n; i++) FMin[i][0]=FMax[i][0]=A[i]; for(i=1; (1<<i)<=n; i++) //按区间长度递增顺序递推 { for(j=1; j+(1<<i)-1<=n; j++) //区间起点 { FMin[j][i]=min(FMin[j][i-1],FMin[j+(1<<(i-1))][i-1]); FMax[j][i]=max(FMax[j][i-1],FMax[j+(1<<(i-1))][i-1]); } }}int Querymax(int l,int r)//区间最大{ int k=(int)(log(double(r-l+1))/log((double)2)); return max(FMax[l][k],FMax[r-(1<<k)+1][k]);}int Querymin(int l,int r)//区间最小{ int k=(int)(log(double(r-l+1))/log((double)2)); return min(FMin[l][k],FMin[r-(1<<k)+1][k]);}int main(){ int i,a,k,t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); for(i=1; i<=n; i++) scanf("%d",&A[i]); Init(); __int64 ans=0; int map=2; for(i=1; i<=n; i++)///枚举左端点 二分右端点 { int left=map; int right=n; while(left<=right) { int mid=(left+right)/2; int maxx=Querymax(i,mid); int minn=Querymin(i,mid); if(maxx-minn<k) { map=mid+1; left=mid+1; } else right=mid-1; } // printf("%d %d\n",i,left-1); ans+=(left-1)-i+1; } printf("%I64d\n",ans); } return 0;}
0 0
- hdu 5289 Assignment (rmq模版)
- hdu 5289 Assignment(RMQ)
- hdu 5289 Assignment 二分+rmq
- hdu 5289(二分+RMQ) Assignment
- HDU 5289 Assignment【二分+RMQ】
- 【二分+RMQ】hdu 5289 Assignment
- HDU 5289 Assignment (RMQ+二分)
- HDU 5289 Assignment (二分+RMQ)
- Hdu-5289 Assignment (二分+RMQ || 单调队列)
- HDU 5289 Assignment(RMQ+二分)
- 多校第一场 hdu 5289 Assignment(rmq+二分)
- HDU 5289 Assignment (RMQ——ST算法)
- hdu 5289 Assignment(RMQ,单调队列,multiset)
- HDU 5289 Assignment [RMQ区间查询+二分搜索]
- HDU 5289 Assignment(2015 多校第一场二分 + RMQ)
- HDU 5289 Assignment (二分+RMQ) 2015多校训练一 1002
- HDU 5289 Assignment(多校2015 RMQ 单调(双端)队列)
- hdu 5289 - Assignment(2015 Multi-University Training Contest 1 )单调队列+RMQ+树状数组
- MFC学习笔记.day01-WINMAIN,MSG,WNDCLASS,ID-HANDLE-HWND,图标光标
- epoll介绍和使用
- Fast and accurate short read alignment with Burrows-Wheeler transform
- Java的基本数据类型全解(by 星空武哥)
- Ansible常用模块
- hdu 5289 Assignment (rmq模版)
- oc002---定义OC的类和创建OC的对象
- Hibernate建立多对一的单向关联关系
- Duilib教程-控件练习
- int to string 整型转化为字符串( C语言接口与实现:创建可重用软件的技术)
- 【PHP学习】控制结构/文件包含语句
- 自定义struts(一)--咱家自己写的struts--我对struts的理解
- Android ScrollView中嵌套ListView和GridView显示不全解决方案
- 【PHP学习】PHP支持的数据类型