玲珑OJ 1149
来源:互联网 发布:大数据开发难学吗 编辑:程序博客网 时间:2024/06/05 06:49
题目链接
显然通过尺取法可以找到每次以j为结尾,包含j的区间,往左延伸,最左能到i (i<=j)
于是以j为结尾的区间有(j-i+1)个
累加即可
#include<stdio.h>#include<bits/stdc++.h>#define ll long long#define pii pair<int,int>#define pll pair<ll,ll>#define MEM(a,x) memset(a,x,sizeof(a))#define lowbit(x) ((x)&-(x))using namespace std;const int N = 2e5+5;int a[N];map<int,int>mp;void eraseAi(int i){ auto it=mp.find(a[i]); --it->second; if(it->second==0){ mp.erase(it); }}ll slove(int n,int k){ mp.clear(); int i=0; mp[a[i]]=1; ll ans=1; for(int j=1;j<n;++j){ mp[a[j]]+=1; while((--mp.end())->first-mp.begin()->first>k){ eraseAi(i); ++i; } ans+=(j-i+1); } return ans;}int main(){ //freopen("/home/lu/code/r.txt","r",stdin); //freopen("/home/lu/code/w1.txt","w",stdout); int n,k; while(~scanf("%d%d",&n,&k)){ for(int i=0;i<n;++i){ scanf("%d",&a[i]); } printf("%lld\n",slove(n,k)); } return 0;}
阅读全文
0 0
- 玲珑OJ 1149
- 【二分+RMQ】玲珑oj 1149
- SDUT oj 玲珑龟
- 玲珑oj 1074
- 玲珑oj 1072 - Capture
- 玲珑oj Digital Count
- 玲珑OJ 1047
- 玲珑oj 1096
- 玲珑oj 1099
- 玲珑OJ 1100
- 玲珑OJ 1097
- 玲珑oj 1097
- 玲珑OJ-1100
- 玲珑学院OJ 1126
- 玲珑学院OJ 1125
- 玲珑学院OJ 1131
- 玲珑oj 1125
- 玲珑oj 1129
- 一个简单的Makefile示例
- centos服务器安装桌面
- 杭电acm4562守护雅典娜 (dp+圆)
- 【简记】Java Web 内幕——Mybatis初始化,数据源与连接池,事务管理
- 手游服务端框架之GM金手指的设计
- 玲珑OJ 1149
- C语言复习总结篇(二)
- HTML/css学习之-filter:drop-shadow给文字设置一个阴影+@keyframes 规则
- <HTTP协议详解>由浅入深看HTTP
- VS2012中自定义工具“MyApplicationCodeGenerator”与文件“My Project\Application.myapp”相关联,但在项目中找不到该自定义工具的输出
- SYN和RST 学习
- Linux基础之权限管理ACL
- learning rate
- HTML标签自定义属性